Partial Summary of Paul Graham’s essay on the 1960 McCarthy’s Lisp
http://www.paulgraham.com/rootsoflisp.html
Seven primitive operators:
quote, atom, eq, car, cdr, cons, cond
Expression : foo () (foo) (foo bar) (a b (c) d)
- (quote x) returns x. Abbreviated as ‘x
- (atom ‘a) – predicate, returns T if true, () if False (Nil)
- (eq x y) – returns T if atoms x=y, or two empty lists, otherwise returns ()
- (car x) expects x to be a list, and returns the first element.
- (cdr x) expects x to be a list, and returns everything after the first element
- (cons x y) expects the value of y to be a list, and returns a list containing the value of x followed by the elements of the value of y.
- (cond (p1 e1) … (pn en)) is evaluated as follows. The p expressions are evaluated in order until one returns T, true. When one is found, the value of the corresponding e expression is returned as the value of the whole cond expression.
Further reading:
See McCarthy eval Lisp on github based on the 1.5 manual
Also, this PG version https://gist.github.com/bsima/7d52b805996e60fa5832
And this: http://informatimago.com/develop/lisp/com/informatimago/small-cl-pgms/aim-8/aim-8.lisp
Numbers can be implemented by using a list of n atoms to represent the number n.
See “The Art of The Interpreter” by Steele and Sussman for an examination of “effects of various language design decisions on theprogramming styles available to a user of the language, with particular emphasis on the ability to incrementally construct modular systems.”
https://dspace.mit.edu/handle/1721.1/6094


One rarely finds a pearl such as this one
Good cooking fakes time. If you are made to wait, it is to