Structure and Interpretation of Computer Programs

[3] The book describes computer science concepts using Scheme, a dialect of Lisp.

It also uses a virtual register machine and assembler to implement Lisp interpreters and compilers.

The magazine said that the book was not easy to read, but that it would expose experienced programmers to both old and new topics.

[9] Wadler criticized in particular the lack of pattern matching, obscuring equational reasoning and making the teaching of proofs harder; the lack of algebraic data types in Scheme and the over-reliance on cons pairs for both code and data representation, which can confuse beginning students; and the choice of strict instead of lazy evaluation as the standard evaluation strategy.

SICP has been influential in computer science education, and several later books have been inspired by its style.