I have not programmed in Lisp in a while. Below are some books I found useful when learning it.
- ANSI Common Lisp I really like the way that Paul Graham writes. His style seems very clear to me. Though the material that he is presenting may not be easy, I find it easy to understand him and am focusing on this book at the moment. A book review revealed some chapter annotations and notes on the exercises.
- Programming in Emacs Lisp I have read most of this book and have done nearly all of the exercises. It was helpfull for my discoveries to be directly applicable to a tool that I already use everyday, i.e. Emacs.
- On Lisp Another Paul Graham book which I should read after ANSI Common Lisp. However, I've already read the first two chapters and I like how he demonstrates how different Lisp is from other languages. My other exposures to Lisp have resulted in me thinking of it in the same way that I might think of a procedural language. Paul's style in On Lisp seems to focus on what makes Lisp different which seems to be exactly what I need. At the same time it is intended for experienced Lisp programmers so I will hold off on this book for now.
- SICP This is the book that MIT uses for its introduction to CS course. I could use this book alone but it doesn't read as easily as the other books. My goal is read it all (and do all of the exercises). The last chapter focuses on Computing with Register Machines and it introduces a low level "machine-language". It then goes on to implement a compiler for this "machine-language". All of which is done with Lisp.
- The Little Schemer This is a really fun book with a unique style. It asks and then answers a series of short questions and then continues to build in this style. It makes the material easy to learn (as easy as it can be since some of simple questions really make you think) and packs a lot of information into a small amount of text.