RosettaCodeData/Task/Fibonacci-sequence/Emacs-Lisp/fibonacci-sequence-2.l

11 lines
281 B
Common Lisp

(defun fibonacci (n)
(let ( (vec) (i) (j) (k) )
(if (< n 2) n
(progn
(setq vec (make-vector (+ n 1) 0) i 0 j 1 k 2)
(setf (aref vec 1) 1)
(while (<= k n)
(setf (aref vec k) (+ (elt vec i) (elt vec j) ))
(setq i (+ 1 i) j (+ 1 j) k (+ 1 k) ))
(elt vec n) ))))