[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[shootout] ary3.bat



; @echo off
; mzscheme.exe -f ary3.bat -mvC %1
; goto :end

(define (main args)
  (let* ((n (string->number (car args)))
	 (x (make-vector n 0))
	 (y (make-vector n 0))
	 (last (- n 1)))
    (do ((i 0 (+ i 1)))
	((= i n))
      (vector-set! x i (+ i 1)))
    (do ((k 0 (+ k 1)))
	((= k 1000))
      (do ((i last (- i 1)))
	  ((< i 0))
	(vector-set! y i (+ (vector-ref x i) (vector-ref y i)))))
    (print-list (vector-ref y 0) " " (vector-ref y last))))

(define (print-list . items) (for-each display items) (newline))

; :end