My Favorite Lisp Books

You could mail me or go to my home page or my main book page.

On Lisp by Paul Graham
This is extremely useful for somebody who knows something about Lisp and wants to learn how to use it effectively. Graham argues forcefully for what he calls "bottom-up" programming, which consists of tailoring the language to suit the problem. He gives numerous examples, many of which are very useful in their own right. Many people consider Lisp macros to be tremendously useful, but few books explain them. This is one of the differences, as over half the book discusses what macros can do and how to do that. Paul Graham has also written a more introductory book with a useful reference section, Ansi Common Lisp.

Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp by Peter Norvig
Norvig starts with a quick introduction to Lisp, although this won't be very useful to a true beginner, and dives in to more and more advanced stuff. Most of the chapters discuss how to write good, solid Lisp applications, starting with the general idea and proceeding through the design and programming process, from the first iffy steps to solid, efficient, production-quality code.

This book teaches at least three things: how to write commercial-quality Lisp applications, how to write good software from basic ideas, and many topics in artificial intelligence. As the author says, it's a bit dated on AI, but I've never seen anything like it on writing industrial-strength Lisp programs.

Structure and Interpretation of Computer Programs by Abelson and Sussman
This book uses Scheme rather than Common Lisp, and its purpose is to explain computer science rather than any sort of computer language. It succeeds in being by far the best introduction to computer science I have ever seen, and in addition shows how to use Scheme to do many different things. I strongly recommend it as an introductory book for computer scientists (or an advanced book for people in general). Working through it is slow, as it is dense with ideas and knowledge. It teaches computer science primarily, but through the lens of functional programming. Most people outside the CS field are not familiar with functional programming, and anybody inside it certainly should learn it.

All contents of these pages Copyright 1997 by David H. Thornley.