Add new comment

I bought two good old Common Lisp books, and the first one Lisp (3rd Edition) by Winston and Horn arrived on Friday. It's meant to be an introduction to the Common Lisp programming language but since I know much of the basics, I consider it a fairly good reference. The later half of book contains applications that might be more appropriate for 2nd or 3rd year Computer Science students, such as an implementation of Prolog or the implementation of Blocks World which was also used in SHRDLU one of the first AI planning programs). Click here to view the table of contents for LISP 3rd Edition
The most useful reference for me is the chapter on debugging. Most Common Lisp books and tutorials neglect to mention how to figure out where your code is going wrong. The debugging are TRACE, STEP and BREAK.
I think the book also contains a section on the conditions and restarts system in Common Lisp, but I'm not sure. When I have more time after my courses this semester are complete, I will post a review of the book along with some code snippets from it. The most amazing thing is that I bought it for $6 from a used book seller on Amazon and the condition of the book isn't bad at all.
I hope the other book arrives after my exams are complete, it's really difficult to avoid potentially amazing books that are full of useful knowledge! I can't to start using the language more often than I use PHP, Python, etc. Those are all fine languages but there is a very good reason that Lisp was used for all sorts of advanced artificial intelligence systems.
Click here to see the Quora question asking for more classic Lisp books
Table of Contents for LISP 3rd Edition
- Understanding Symbol Manipulation - page 1
- Basic LISP Primitives - page 9
- Procedure Definition and Binding - page 37
- Predicates and Conditionals - page 49
- Procedure Abstraction and Recursion - page 69
- Data Abstraction and Mapping - page 93
- Iteration on Numbers and Lists - page 113
- File Editing, Compiling, and Loading - page 123
- Printing and Reading - page 131
- Rules for Good Programming and Tools for Debugging - page 147
- Properties and Arrays - page 159
- Macros and Backquote - page 167
- Structures - page 175
- Classes and Generic Functions - page 183
- Lexical Variables, Generators, and Encapsulation - page 207
- Special Variables - page 225
- List Storage, Surgery, and Reclamation - page 233
- LISP in LISP - page 259
- Examples Involving Search - page 275
- Examples Involving Simulation - page 291
- The Blocks World with Classes and Methods - page 303
- Answering Questions about Goals - page 323
- Constraint Propagation - page 335
- Symbolic Pattern Matching - page 353
- Streams and Delayed Evaluation - page 367
- Rule-Based Expert Systems and Forward Chaining - page 379
- Backward Chaining and PROLOG - page 393
- Interpreting Transition Trees - page 411
- Compiling Transition Trees - page 431
- Procedure-Writing Programs and Database Interfaces - page 441
- Finding Patterns in Images - page 455
- Converting Notations, Manipulating Matrices, and Finding Roots - page 485
- Appendix: The Computation of the Class Precedence List - page 509
- Solutions - page 515
- Gloassary - page 573
- Bibliography - page 589
- Index of LISP Primitives Used in this Book - page 593
- Index of LISP Definitions - page 597
- General Index - page 605
