Skip to main content
Chaptra
Cover of On Lisp

On Lisp

Written by Paul Graham

4.54 ratings

440 pages, about 9 hours of reading

Chaptra reads alongside you — AI insights, chapter breakdowns and reader discussions for every book. Join free

About this book

Written by a Lisp expert, this is the most comprehensive tutorial on the advanced features of Lisp for experienced programmers. It shows how to program in the bottom-up style that is ideal for Lisp programming, and includes a unique, practical collection of Lisp programming techniques that shows how to take advantage of the language's design for efficient programming in a wide variety of applications.

Read it with a club

Small groups reading the same books and talking as they go.

All clubs
A warm-lit wall of bookshelves

News

  • 1 member
  • 1,813 discussions
  • Active 5h ago

Read On Lisp alongside people who are reading it too.

Chaptra Prime — paid clubs, every club feature, and unlimited reading support, for $5 a month or $60 once.

See Prime

Reading guide

Themes, characters and key ideas in On Lisp, written by Chaptra AI.

  • about 50 hours
  • advanced
  • instructive
  • analytical
  • challenging

Paul Graham's "On Lisp" is a seminal text that serves as the definitive guide to advanced Lisp programming for experienced developers. It champions a unique "bottom-up" programming style, leveraging Lisp's powerful metaprogramming capabilities, particularly macros, to build domain-specific languages and extend the language itself. The book is not merely a syntax manual but a profound exploration of Lisp's philosophy, demonstrating how to design and implement elegant, efficient, and highly customizable software solutions. It's a practical collection of techniques that unlocks Lisp's full potential, transforming how programmers approach problem-solving.

The way to become a good Lisp programmer is to be willing to get a little lost.

Key themes

Metaprogramming and Language Extensibility
This theme explores Lisp's unparalleled ability to manipulate its own code as data, primarily through macros. The book meticulously details how macros can be used to extend the language, create new syntax, and generate code, effectively allowing programmers to build domain-specific languages (DSLs) within Lisp. This concept is fundamental to Lisp's power and is presented as a superior alternative to merely using a fixed language.
Bottom-Up Programming and Abstraction
This is the central philosophical and practical theme of the book. Graham argues for building software by creating layers of abstraction, starting from the most primitive operations and gradually building up to higher-level, problem-specific constructs. This approach leverages Lisp's flexibility to create a language tailored to the problem at hand, rather than forcing the problem into a rigid, pre-defined language structure. It emphasizes designing tools and mini-languages that make the final solution elegant and concise.
Efficiency and Expressiveness
Graham addresses the common misconception that Lisp is inherently slow. He demonstrates how Lisp's expressive power, combined with careful programming and optimization techniques, can lead to highly efficient code. The book covers strategies for writing performant Lisp, including compiler interactions, data structure choices, and algorithmic considerations, proving that expressiveness does not have to come at the cost of speed.

Worth discussing

How does the 'bottom-up' programming style advocated by Graham differ from more conventional 'top-down' or 'object-oriented' approaches, and what are its advantages/disadvantages?

Chapter-by-chapter breakdowns, character arcs and the full thematic analysis come with a free account.

Discussions

No one has started one yet

Join

Questions this book opens up

No discussions yet

Be the first to start a discussion about this book!

Sign up to start the discussion

Reviews

No reviews yet

Be the first to review this book!