Next: Lisp Tutorials, Previous: Zach Beane’s Lisp Resources, Up: Common Lisp Resources [Contents][Index]
“Most of Lisp books in one place.”
This is an excellent introduction to the Common Lisp language. Instead of focusing on mechanisms the way most other books do, this book is organized around practical examples related to contemporary problems.
This is a reference book of advanced CL techniques.
This book is a collection of solutions to problems and answers to questions you are likely to encounter when writing real-world applications in Common Lisp. Written by an author who has used Common Lisp in many successful commercial projects over more than a decade, this book covers areas as diverse as web programming, databases, graphical user interfaces, integration with other programming languages, multi-threading, and mobile devices as well as debugging techniques and optimization, to name just a few. It is also the first Common Lisp book to tackle such advanced topics as environment access, logical pathnames, Gray streams, delivery of executables, pretty printing, setf expansions, or changing the syntax of Common Lisp.
This book is an introduction to the Common Lisp programming language. The programming style of Paul Graham is a bit different from the one you will find in most modern Common Lisp programs, but this fact is not likely to make a big difference to the debutant.
This book is about advanced programming Common Lisp, and specifically how to use the Common Lisp language to create Domain Specific Languages (DSLs) using a technique called embedded languages. This entire book is available as a free download.
The book emphasizes a bottom-up style of writing programs, which Graham claims is natural in Lisp and has advantages over the traditional way of writing programs in C and Pascal.
Of special note are the in-depth sections on writing macros. There are several very nice examples. It also includes an implementation of Prolog and an ATN compiler.
The Common Lisp object system (CLOS) is quite different from, and more power than that of other object-oriented languages. This books gives an introduction to object-oriented programming using CLOS. The book is a bit old, and this is particularly obvious in the examples given, but the mechanisms discussed have not changed, of course.
This is a very good programming book. Peter Norvig shows how to use advanced features of the Common Lisp language to program some of the traditional problems of Artificial Intelligence (search problems, natural languages, etc.), but it is definitely not a book about AI, but about programming techniques, so it is worth reading for everyone, and not only for those who are interested in AI.
Norvig’s book provides an in-depth exposition of advanced AI programming techniques and includes large-scale detailed examples. The book is the most advanced AI/Common-Lisp programming text and reference currently available, and hence is not for the complete novice. It focuses on the programming techniques necessary for building large AI systems, including object-oriented programming, and has a strong performance orientation.
The text is marked by its use of "non-toy" examples to illustrate the techniques. All of the examples are written in Common Lisp, and copies of the source code are available in this directory. Some of the techniques described include rule-based pattern matching (GPS, Eliza, a subset of Macsyma, the Emycin expert system shell), constraint propagation and backtracking (Waltz line-labeling), alpha-beta search (Othello), natural language processing (top-down, bottom-up and chart parsing), logic-programming (unification and Prolog), interpreters and compilers for Scheme, and object-oriented programming (CLOS).
The examples are also used to illustrate good programming style and efficiency. There is a guide to trouble-shooting and debugging Lisp programs, a style guide, and a discussion of portability problems. Some of the efficiency techniques described include memoization, data indexing, compilation, delaying computation, proper use of declarations, avoiding garbage collection, and choosing and using the correct data structure.
The book also serves as an advanced introduction to Common Lisp, with sections on the Loop macro, CLOS and sequences, and some coverage of error handling, series, and the package facility.
In this book, the authors show how the Common Lisp Object System (CLOS) can be defined in a meta-circular way, i.e., as an object-oriented program using CLOS. Though this might sound like a cute exercise with little or no practical use, this is definitely not the case, because that is in fact how CLOS is written. The authors also discuss bootstrapping problems that invariably occur with such systems, and how these problems were solved in their implementation of CLOS called PCL. The second part of the book contains a complete specification of CLOS, and that part is available for free as online html.
The 1990 edition of this book is available as download for free. For a long time it was out of print, but now it is back in print "with minor revisions".
Touretzky’s book is perhaps the best tutorial introduction to the language. It has clear and correct explanations, and covers some fairly advanced topics. The book is an updated Common Lisp version of the 1984 edition published by Harper and Row Publishers.
Three free Lisp educational tools which were used in the book –
‘Evaltrace’, ‘DTRACE’ and ‘SDRAW’ — are available in the lisp/
and
evaltrace/
subdirectories. ‘Evaltrace’ is a graphical notation for
explaining how evaluation works and is described in "Visualizing Evaluation
in Applicative Languages" by David S. Touretzky and Peter Lee, CACM 45-59,
October 1992. ‘DTRACE’ is a "detailed trace" which provides more
information than the tracing tools provided with most Common Lisp
implementations. ‘SDRAW’ is a read-eval-draw loop that evaluates Lisp
expressions and draws the result as a cons cell diagram (for both X11 and
ascii terminals). Also available is ‘PPMX’, a tool for pretty printing
macro expansions.
This book is as close to a reference manual for Common Lisp at it gets. Unfortunately, the book was published before the Common Lisp standard process was entirely finished, and there are some discrepancies between the contents of the book and what finally ended up in the standard. Having said that, I think it is a great book, and it explains many things in much greater depth than what the HyperSpec is able to communicate. Furthermore, the entire books is available to download for free, or to consult as HTML.
The purpose of this book is to help you learn the Common Lisp dialect of the programming language Lisp (LISt Processing language) by experimenting with it via an interactive computer terminal. The recommended method is to read a chapter or two, sit down at a terminal and try the examples and exercises of those chapters, leave the terminal and go on to the next chapters, and so on. The book is intended to be a self-paced study guide, requiring additional information from an instructor, manual, consultant, or friend only to fill in the details of the local operating system and a few implementation-dependent features.
In this edition, …, I am strictly following the Common Lisp standard set out in Guy L. Steele, Jr.’s COMMON LISP: The Language, Second Edition (Bedford, MA: Digital Press, 1990).
Next: Lisp Tutorials, Previous: Zach Beane’s Lisp Resources, Up: Common Lisp Resources [Contents][Index]