📖 Overview
On Lisp examines advanced programming techniques using Common Lisp. The book focuses on bottom-up programming and the creation of new programming languages through macros.
The text progresses from functional programming fundamentals to increasingly sophisticated macro implementations. Code examples demonstrate real-world applications of the concepts, including the development of embedded domain-specific languages.
Graham illustrates how Lisp's flexibility allows programmers to extend the language itself through macros and metaprogramming. The book contains implementations of features like object systems, catch/throw mechanisms, and alternate control structures.
The work stands as an exploration of programming language design and the relationship between language features and expressive power. It presents Lisp not just as a language but as a tool for creating new languages suited to specific problems.
👀 Reviews
Readers describe the book as dense and theoretical rather than practical, with deep explorations of macros and bottom-up programming. Multiple reviews note it requires prior Lisp experience to follow.
Readers appreciated:
- Clear explanations of advanced macro techniques
- Code examples that build upon each other
- Detailed coverage of functional programming concepts
- Focus on real-world programming patterns
Common criticisms:
- Too abstract for beginners
- Examples can be hard to follow
- Some concepts explained incompletely
- Book feels dated in parts
Ratings:
Goodreads: 4.4/5 (193 ratings)
Amazon: 4.7/5 (21 ratings)
"The macro chapters alone are worth the price" - Goodreads reviewer
"Not for those new to Lisp, but invaluable for intermediate programmers" - Amazon review
"Complex material that rewards careful study" - LibraryThing review
"Could use more concrete examples" - Hacker News comment
The physical book remains expensive and hard to find, though free PDF versions are available online.
📚 Similar books
Structure and Interpretation of Computer Programs by Harold Abelson, Gerald Jay Sussman.
This text explores functional programming concepts and metaprogramming through Scheme, building from basic principles to complex program structures.
Let Over Lambda by Doug Hoyte. The book delves into advanced macro techniques and closures in Common Lisp, focusing on code generation and domain-specific languages.
Paradigms of Artificial Intelligence Programming by Peter Norvig. This work demonstrates practical Common Lisp programming through the implementation of classical AI algorithms and systems.
The Art of the Metaobject Protocol by Gregor Kiczales. The text explains CLOS internals and metaobject protocols, showing how to extend and customize the Lisp object system.
Practical Common Lisp by Peter Seibel. The book presents modern Common Lisp programming through practical examples and real-world applications, including macro development and system construction.
Let Over Lambda by Doug Hoyte. The book delves into advanced macro techniques and closures in Common Lisp, focusing on code generation and domain-specific languages.
Paradigms of Artificial Intelligence Programming by Peter Norvig. This work demonstrates practical Common Lisp programming through the implementation of classical AI algorithms and systems.
The Art of the Metaobject Protocol by Gregor Kiczales. The text explains CLOS internals and metaobject protocols, showing how to extend and customize the Lisp object system.
Practical Common Lisp by Peter Seibel. The book presents modern Common Lisp programming through practical examples and real-world applications, including macro development and system construction.
🤔 Interesting facts
🔹 Paul Graham wrote "On Lisp" while completing his PhD at Harvard, and made the complete book freely available online in 1993, years before open-source publishing became common.
🔹 The book introduces the concept of "bottom-up programming," where complex programs are built by creating new programming languages specifically suited to the problem at hand.
🔹 Many techniques described in "On Lisp," such as anaphoric macros and continuation-passing style, influenced modern functional programming languages and web development frameworks.
🔹 The author later co-founded Viaweb, one of the first web-based applications, which was written entirely in Lisp and sold to Yahoo! for $49.6 million in 1998.
🔹 Though published in 1993, "On Lisp" remains one of the few comprehensive resources on macro programming in Lisp, and its techniques are still relevant for modern programmers working with metaprogramming.