; @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