This is the lecture for April 8. (if p a b) (cond (p1 a1) ... (t an)) (and p1 p2 ... pn) (or nil nil (+ 3 4)) (and 3 4) (defun equal1 (x y) (or (eq x y) (and (not (atom x)) (not (atom y)) (equal1 (car x) (car y)) (equal1 (cdr x) (cdr y)) ))) (defun subst1 (x y z) (if (atom z) (if (eq y z) x z) (cons (subst1 x y (car z)) (subst1 x y (cdr z))))) for in (subst1 '(a b) 'x '(x y x (y x))) ((x . 3) (y . 4) (x . 5) (y . 6)) (assoc1 'x '((x . 3) (y . 4) (x . 5) (y . 6))) (defun assoc1 (x a) (cond (not (null a)) (equal x (car (car a))) (cdr (car a)) (assoc1 x (cdr a)))) (defun assoc1 (x a) (cond ((null a) nil) ((eq x (caar a)) (car a)) (t (assoc1 x (cdr a))))) p. 18 - all, p.45 , first 10 (defun reverse1 (u) (reverse11 u nil)) (defun reverse11 (u v) (if (null u) v (reverse11 (cdr u) (cons (car u) v)))) (reverse11 '( a b) '(c d)) => (b a c d) (reverse11 'a '(c d)) My copy of Norvig's book arrived from Amazon, so evidently Morgan-Kauffman has them again.