g000001 / rpg.tail-recursive-defun

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

70’s rpg’s tail-recursive-defun

(tail-recursive-defun fib (n a1 a2) 
  (cond ((zerop n) a2)
        ((= 1 n) a1)
        (t (tail-recur (1- n) (+ a1 a2) a1))))
==>
(DEFUN FIB (N A1 A2)
  (PROG ()
    #:G7855
        (RETURN 
          (PROGN 
            (COND ((ZEROP N) A2)
                  ((= 1 N) A1)
                  (T ((LAMBDA (#:G7857)
                        (SETQ N (1- N))
                        (SETQ A1 (+ A1 A2))
                        (SETQ A2 #:G7857)
                        (GO #:G7855))
                      A1)))))))

About


Languages

Language:Common Lisp 100.0%