A short review of Peter Seibel’s Practical Common Lisp

I recently read Practical Common Lisp by Peter Seibel — full text online here. It’s a good introduction to the language and explains Common Lisp’s loop macro, format function, and exception system better than anywhere else I’ve seen.

The book contains a number of examples illustrating how to use Common Lisp to solve practical programming problems — a unit test framework, an ID3 parser, and an HTML generation library amongst others.

The Unit test example does a good job capturing the incremental development style of Lisp — building a system peice by peice, experimenting with bits of functionality in the terminal as you go along. It showcases well the advantage of using a dynamic language like Lisp over less fluid languages like C or Java.

The latter examples are good, mostly uncontrived, studies in solving everyday problems with Common Lisp — valuable because it’s hard to find examples elsewhere. But it’s disappointing that the web programming example depends on the proprietary Allegro Common Lisp which is free for hobbyist use, but costs an arm and a leg for more.

Overall, I enjoyed the book, but Paul Graham’s ANSI Common Lisp is still a better introduction to the language and the Lisp way of thinking.

I'd recommend reading Graham first, then referring to the online text of Practical Common Lisp for more detailed explanation of certain functionality and practical examples.