- Lisp, 1st edition, by Winston and Horn (sentimental reasons -- this was the book I learned Lisp from)
- Ansi Common Lisp by Paul Graham
- On Lisp by Paul Graham
- Structure and Interpretation of Computer Programs by Abelson and Sussman (OK so it's Scheme, but does that matter?)
- Artificial Intelligence Programming (Charniak. Riesbeck, McDermott)
- Paradigms of AI Programming by Norvig
- The Anatomy of Lisp by Allen (this I learned to /implement/ Lisp from)
- The Art of the MetaObject Protocol
- CLTL2 by Steele
- Handbook of Programming Languages, vol. 4: Functional and Logic Programming Languages; edited by Peter Salus. This series is written by a bunch of people who are considered experts in their programming languages. Vol. 4's sections are about Emacs Lisp, Scheme, Guile, CLOS, and Prolog. While this selection is extremely odd (for exclusively using lisps in a book about functional languages, and not putting CLOS in the oop language volume), it at least makes a nice little lisp book. I learned Emacslisp from it, and the chapter on Scheme talked about its Algol influences, which is usually missing in books like SICP or the Little/Seasoned Schemer books. I didn't read the other vol. 4 chapters, except part of the CLOS one. Definitely an underrated book.
- Programming Language Pragmatics by Michael Scott This isn't really a lisp book, but it definitely talks about lisp a lot. I haven't read it completely (right now I'm taking a break and reading the incredible AIMA), but I think there's a sense where lisp is really part of any good conversation about programming languages.
- PAIP, by Norvig Maybe everyone will mention this. All I have to say is that Norvig really shouldn't be teaching people things like the defun-memo macro. This and the disassemble function made it clear to me that CL is a language that just doesn't fuck around. In fact, I just realized that I memoized something in Java completely stupidly months ago. One is so trained in Java to be disciplined, that the brain falls asleep and the fingers write unmaintainable code.
- SICP, by Abelson & the Sussmen I always try to point the video lectures out: http://www.swiss.ai.mit.edu/classes/6.001/abelson-sussman-lectures/ I hope someone writes a modifiable version of this book online. Powerful book, but people should add things in the margins or as footnotes, because it needs... to be completed in a way that it can't be as purely a teaching text. Sort of like an epic poem. Concrete Mathematics by Graham/Knuth/etc kinda did something like this, but as dead-tree it couldn't go far on this theme.
- SICP, 1st edition: it introduced me to the Lisp family of languages, and hooked me forever. It would be more appropriate to say that it was a lightning strike.
- CLtL1: it got me curious about Common Lisp.
- PAIP: it motivated me to learn Common Lisp.
- Object Oriented Programming in Common Lisp: it got me fascinated with CLOS and object-oriented programming--in Lisp.
- On Lisp: it made me feel the power of Lisp.
"On Lisp" by Paul Graham
I just love this book! In a way it shows that Macros are the equivalent of /spells/ in role playing games. In fact they are more powerful, because unlike /spells/ they also redefine the rules of the game. Somewhat like the /Meta/-chess example in D.R.Hofstadters "Goedel, Escher, Bach". Rules that change the rules to change rules.
"Performance and Evaluation of Lisp Systems" by R.P.Gabriel pdf
Very interesting if you're into the implementation details of Lisp systems and want to understand efficiency issues involved.
"Successful Lisp" by David B. Lamkins
My recommendation for Lisp beginners with some programming background.
"Goedel, Escher, Bach" by D.R. Hofstadter
Because it got me hooked on programming in general and Lisp in particular at an early age.
"Patterns of Software" by R.P. Gabriel
Because it explains alot about the context. I think this is by far the best explanation of the /patterns/ metaphor regarding programming.
- Here is one for beginners. It is in German and contains basics on 300 pages. Programmieren in COMMON LISP, Otto Mayer, 2.Auflage, Spektrum Verlag 1995, ISBN 3-86025-710-2 ~25,-Euros.
- I should go to ask the library about -Anatomy of lisp, Mc.Graw-Hill, New York 1978, this title is on the top of my wish-list.
- Besides all the aforementioned books by other posters I also really like "Object-Oriented Common Lisp" from Stephen Slade. It is my main paper reference. (Maybe because it is the book I started CL with, or do other people like it as well as a reference besides the Hyperspec?)
- yes, I like it [Slade's books] as well. imho it is THE book to read first, and PG's "On Lisp" next.
- Lisp Lore: A Guide To Programming the Lisp Machine. This book gives some idea why all the old timers in comp.lang.lisp miss the Lisp Machine so much.
- Object-Oriented Programming in Common Lisp: A Programmer's Guide to CLOS by Sonya E. Keene. This is a great introduction to the CLOS mindset. It includes discussion of relatively advanced topics such as the choice between :initform and :default-initargs and use of :around methods. Despite its age it's still great.
- _On Lisp_, by Paul Graham
- _Common Lisp and Artificial Intelligence_, by Patrick R. Harrison
- _Common Lisp_, by Guy Steele
- _Franz Lisp_ (not sure if the title's correct; I think it's by the Franz Corp.)
- It's not a book, but the info pages on librep (`info librep' on Unix or Linux) are excellent.
- i would add Robert Wilensky, Common LISPcraft, as a good supplement to another book on Common LISP (e.g., Paul Graham, ANSI Common Lisp, or Stephen Slade, Object-Oriented Common Lisp, both of which have been mentioned here). it may be a bit dated, and i don't think it quite stands alone as a primer, but back then wilensky was an informed and enthusiastic writer about LISP.
- Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp. Peter Norvig. Possibly the best hardcore programming book ever.
- Lisp in Small Pieces (translated from the French "Les langages Lisp", or something of the kind). Christian Queinnec. A very nice in-depth look at the internal workings of Lisp-like languages. A bit too Schemey.
- Common Lisp: The Language (2nd ed.) Guy Steele. Appallingly out of date, but I found it a great way to learn the language. I am, however, a bit of a weirdo, so I don't guarantee that this particular preference will be very transferable.
- On Lisp. Paul Graham. Graham is a vigorous advocate of short, dense programs. Here are some fine examples of how to write them.
- Structure and Interpretation of Computer Programs. Abelson, Sussman and Sussman. Way too Schemey :-) and not really about Lisp, but still deserves its fame.
I'm still learning - or trying to. Here's a list of what's on my shelf:
- The Little Lisper - interesting book - trains one to think in LISP ...
- LISP by Winston and Horn - 1st and 3rd editions. 1st edition used MACLISP; 3rd edition uses Common LISP. I picked it (them) up as they seemed to be used in all of the university classes on LISP.
- On Lisp - Paul Graham - fantastic book which clarifies the more advanced portions of Common LISP.
In addition to SICP, On Lisp, etc:
- Practical Common Lisp by Peter Seibel. A great book, available on-line: http://www.gigamonkeys.com/book/
- SICP teaches how to think about programming
- On Lisp shows what makes Common Lisp great
- Let Over Lambda is idiosyncratic but has a lot of info on advanced CL programming
- John Allen's Anatomy of Lisp is a great way to understand how the Lisp meta-circular evaluator works, and how that is related to formal logics. If I remember correctly, this book was a major inspiration for SICP and the MIT 6.001 course.
- Principles of Biomedical Informatics by Ira J Kalet. Introduces and uses lisp extensively as a development tool.