racket/collects/tests/mzscheme/benchmarks/shootout/ackermann.ss
2006-07-27 19:32:22 +00:00

14 lines
361 B
Scheme

(module ackermann mzscheme
(define (ack m n)
(cond ((zero? m) (+ n 1))
((zero? n) (ack (- m 1) 1))
(else (ack (- m 1) (ack m (- n 1))))))
(define (main args)
(let ((n (if (= (vector-length args) 0)
1
(string->number (vector-ref args 0)))))
(printf "Ack(3,~a): ~a~n" n (ack 3 n))))
(main (current-command-line-arguments)))