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

[Shootout] Ackermann.bat



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

(define (main args)
  (let ([n (string->number (car  args))])
    (print-list "Ack(3," n "): " (ack 3 n))))

(define (ack m n)
  (cond ((zero? m) (+ n 1))
    ((zero? n) (ack (- m 1) 1))
    (else      (ack (- m 1) (ack m (- n 1))))))

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

; :end