28 comments

[ 2.5 ms ] story [ 56.9 ms ] thread
There are some great books here. I can attest that Lisp in Small Pieces is awesome.

Odd that the link is to a footnote, though.

I can double on that.

Around the second chapter I was so amazed by the book that instead of reading it further I translated it into Russian, got the Professor's blessings, and to this day it warms my heart every time I see a new star on the repo.

It's definitely a good introductory piece on Lisp history and its central ideas as well as on language runtimes and implementations.

Lisp in Small Pieces is by far my favorite computer book. It was so much fun to read, and I can't recommend it enough!
I'm not sure it should really count as a "Lisp book", but The Art of the Metaobject Protocol" is one of my favorite technical books ever.

It takes some knocks for not really containing anything about how to use CLOS. Instead, it's how CLOS is built. At a higher level, it's "how to build an object-oriented language/object system from scratch" using Lisp as a vehicle.

For how to use CLOS there is always Sonya Keene's book.
Further, I think it should be emphasized how much there is to CLOS. I've seen a number of CLOS tutorials that stop after showing how to do in CLOS what can be done in other OO languages, and don't really indicate how much more there is, let alone show how to do those things. Keene's book does go in to this. There are a few very minor differences between what she describes and what is in the final standard though.
I think the Keene book should be avoided by all means. I don't think it is a good introduction into OOP or CLOS. My recommendation would be Peter Seibels Practical Common Lisp.
(comment deleted)
It’s “how to build and object system from an object system”. It’s the best book on bootstrapping I’ve ever read.
I read this review of it by Richard Gabriel yesterday: https://www.dreamsongs.com/Files/amop-review.pdf

The review itself is really interesting, you get to learn the context around the MOP and where this book actually came from.

There is also the context of the reviewer.

Richard P Gabriel was one of the six persons responsible for the CLOS specification: Daniel G. Bobrow, Linda G. DeMichiel, Richard P. Gabriel, Sonya E. Keene, Gregor Kiczales, and David A. Moon.

Richard was also the CEO and founder of Lucid, Inc. - a Common Lisp vendor. His company developed and sold a production quality Common Lisp implementation for various UNIX systems.

Don't forget CommonLisp Recipes by Edmund Weitz. Best Lisp book in years.
Two important newer Common Lisp books worth mentioning:

- Common Lisp Recipes - http://weitz.de/cl-recipes/ - the de-facto go-to book on practical Common Lisp usage, for people with at least basic familiarity with the language.

- Land of Lisp - http://landoflisp.com/ - introduction to CL + overview of some more distinct aspects of other Lisps (often portable to CL as a library), teaching by means of writing small games; quite... peculiar.

Also, if someone wants to start with Common Lisp, then Practical Common Lisp (PCL) is usually the book for it. The entire book is available on-line for free: http://www.gigamonkeys.com/book/.

I have been working through the examples and exercises in Paradigms of Artificial Intelligence Programming by Peter Norvig, the full text is available online, all code discussed in the book is LISP https://github.com/norvig/paip-lisp
I always found "Lisp in small pieces" extremely heavy to read. It's not the content per se but I find the writing style baroque to say the least . I attempted to read it twice and never went further than the 2nd chapter. Am I the only one?

Instead I found PAIP the best introduction to Lisp for somebody that has already (plenty of ) experience with other languages. The introduction to the language is concise and smooth. I liked much only the chapters on the language though. The chapters on AI are too much outdated for me to find them entertaining even if the Lisp code is pedagogical for sure.

I didn't like OnLisp at all: the book wastes too much words on saying how much Lisp is great and the best thing in the universe rather than going straight to the point. I don't like this kind of style at all.

I found Practical Common Lisp too slow for my taste and would reccomend it only to a beginner.

For me the quickest way to learn Lisp for an experienced sw engineer is to start with PAIP reading only the first 4 chapters about the language and then to jump straight to a good reference guide such as "Common Lisp the Language, 2nd Edition"

Also I suggest anybody that is interested in CL to have at least a look at Julia. Since the relese of Revise.jl the interactivity of the REPL is second only to Smalltalk and CL but multithreading support is consistent amongst all platforms and the library ecosystem is already interesting. The language has a lot of momentum, is rapidly evolving and the community is small but helpful.

I agree entirely about Lisp in Small Pieces. It's one of those books that I've attempted to read many times and never get more than half way through.
Also, "The Joy of Clojure" is a great one!