;;; -*- mode: emacs-lisp -*- ;;; $Id: ackermann.xemacs,v 1.2 2000/12/07 04:06:18 doug Exp $ ;;; http://www.bagley.org/~doug/shootout/ (setq max-lisp-eval-depth 8000) (setq max-specpdl-size 5000) (defun Ack (M N) (cond ((= M 0) (+ N 1)) ((= N 0) (Ack (- M 1) 1)) (t (Ack (- M 1) (Ack M (- N 1)))))) (defun main () (let* ((arg (car command-line-args-left)) (num (if arg (string-to-number arg) 1))) (princ (format "Ack(3,%d): %d\n" num (Ack 3 num)))))