Plaster
New
List
Login
text
default
anonymous
2023.02.19 02:58:17
(defun sum-last-two (some-list) (cond ((< (length some-list) 0) 0) ((= (length some-list) 1) (nth 0 some-list)) ((>= (length some-list) 2) (+ (nth (- (length some-list) 1) some-list) (nth (- (length some-list) 2) some-list))))) (defun my-fib (n) "Return the nth fibonacci number" (declare (integer n)) (cond ((<= n 0) 0) ((= n 1) 1) ((= n 2) 1) ((> n 2) (+ (my-fib (- n 1)) (my-fib (- n 2)))))) (defun better-fib (n) "Memoized fib function" (declare (integer n)) (let fib-list (list 0 1 1)) (cond ((<= n 0) (nth 0 fib-list)) ((<= n 2) (nth n fib-list)) ((> n 2) (while (<= (length fib-list) (+ n 1)) (append fib-list '((sum-last-two fib-list)))) (nth n fib-list))))
Raw
Annotate
Repaste
Edit