tree-recursive
(defun fib(n)
(cond ( (= n 0) 0)
( (= n 1) 1)
( (+ (fib (- n 1))
(fib (- n 2))))))
linear iteration
(defun fib_(n)
(defun fib-iter (pre nxt index)
(if (= index n)
nxt
(fib-iter nxt
(+ pre nxt)
(+ index 1))))
(fib-iter 0 1 1))
CL-USER> (fib_ 5)
5
CL-USER> (fib_ 6)
8
CL-USER> (fib_ 10)
55
CL-USER> (fib 10)
55
Edit in Emacs with Slime and Steel Bank Common Lisp.