(defun 0 (x) x) (defun 1 (x) (cdr x)) (defun 2 (x) (cdr (cdr x))) (defun 3 (x) (cdr (cdr (cdr x)))) (defun 4 (x) (cdr (cdr (cdr (cdr x))))) (defun 5 (x) (cdr (cdr (cdr (cdr (cdr x)))))) (defun 6 (x) (cdr (cdr (cdr (cdr (cdr (cdr x))))))) (defun 7 (x) (cdr (cdr (cdr (cdr (cdr (cdr (cdr x)))))))) (defun 8 (x) (cdr (cdr (cdr (cdr (cdr (cdr (cdr (cdr x))))))))) (defun 9 (x) (cdr (cdr (cdr (cdr (cdr (cdr (cdr (cdr (cdr x)))))))))) (defun nthcdr (n q) (n q)) (defun nth (n q) (car (n q))) (defun succ (n) (cond ((null n) (quote (1))) ((eq (quote 9) (car n)) (cons (quote 0) (succ (cdr n)))) ((quote t) (cons (succ-1 (car n)) (cdr n))))) (defun succ-1 (n) (nth n (quote (1 2 3 4 5 6 7 8 9)))) (defun pred (n) (cond ((null n) (quote nil)) ((eq (quote 0) (car n)) (cond ((null (cdr n)) (quote nil)) ((quote t) (cons (quote 9) (pred (cdr n)))))) ((eq (quote 1) (car n)) (cond ((null (cdr n)) (quote nil)) ((quote t) (cons (quote 0) (cdr n))))) ((quote t) (cons (pred-1 (car n)) (cdr n))))) (defun pred-1 (n) (nth n (quote (0 0 1 2 3 4 5 6 7 8)))) (defun plus (a b) (plus3 a b (quote 0))) (defun plus3 (a b c) (cond ((null a) (cond ((eq (quote 0) c) b) ((quote t) (succ b)))) ((null b) (cond ((eq (quote 0) c) a) ((quote t) (succ a)))) ((quote t) ((lambda (z) (cons (car z) (plus3 (cdr a) (cdr b) (cdr z)))) (nth c (nthcdr (car a) (nthcdr (car b) (quote ((0 . 0) (1 . 0) (2 . 0) (3 . 0) (4 . 0) (5 . 0) (6 . 0) (7 . 0) (8 . 0) (9 . 0) (0 . 1) (1 . 1) (2 . 1) (3 . 1) (4 . 1) (5 . 1) (6 . 1) (7 . 1) (8 . 1) (9 . 1)))))))))) (defun fib (n) (cond ((null n) n) ((quote t) ((lambda (n1) (cond ((null n1) n) ((quote t) (plus (fib n1) (fib (pred n1)))))) (pred n))))) (fib (quote (0 2))) ;; 56s here