14 lines
361 B
Scheme
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)))
|