These notes accompany my BCS SPA Cambridge talk on 2006-05-10. This document will be found online at http://www.nicklevine.org/bcs.
The two source files around which this talk was based are progress.lisp and simple-xhtml.lisp. The production version of the XHTML generator is xhtml.lisp.
The examples used in this talk are available in a separate file examples.lisp. I hope to use the code in present.lisp to squirt them into a lisp listener during the tutorial.
http://www.cl-user.net/ The Common Lisp Directory -- probably the best portal for Common Lisp and related matters. Larger every time I visit. Probably contains links to everything below.
http://www.lispworks.com/documentation/HyperSpec/Front/ The Common Lisp Hyperspec -- ANSI Common Lisp standard online.
http://www.nicklevine.org/declarative/lectures/ Lisp and elements of style -- lecture series on Common Lisp delivered by the speaker in 1999 and 2000.
http://cl-cookbook.sourceforge.net/ The Common Lisp Cookbook -- including pieces on functions, macros, and the speaker's tutorial on the Common Lisp Object System.
http://www.ilc07.org/ International Lisp Conference -- April 1-4 2007, Clare College, Cambridge. Dozens of lispers on your doorstep. Put the date in your diaries, join the mailing list for announcements.
The recommended books are :
Practical Common Lisp by Peter Seibel, Apress 2005, ISBN 1590592395, £32.29. (Prices here and below harvested from Amazon earlier this week.) This is a book that seasoned lispers are enthusing over. Emphasis on the "practical".
Full text available online, if that's what you'd prefer. And, if you can't make it to my talk this week, maybe you can get to Peter's instead.
ANSI Common Lisp by Paul Graham, Prentice Hall 1996, ISBN 0133708756, £31.34. An excellent and thorough introduction to the language including a full (though somewhat abbreviated) reference manual.
Other books which may be useful for reference / background reading are:
Common Lisp: the language by Guy L Steele, second edition, Digital Press 1990, ISBN 1555580416, £50. This is absolutely not an introductory text, but it does go into very useful depth about every aspect of the language and is sometimes a good place to go when you're stuck with some concept, or when you need a full explanation of how something works. Almost as thorough as the formal specification but considerably chattier and with a few good jokes. Warning: this book was published 4 years before Common Lisp was standardized, and is thus only a 99% match to the language, but that should be good enough for our purposes.
The complete text of this book is supposed to be available online. Last time I checked some of the links here were broken, but some of the mirror sites are in better condition. You mileage may vary.
LISP by Patrick Winston and Berthold Horn, Addison-Wesley 1989, ISBN 0201083191, approx £10 second-hand. Covers basic concepts but then wanders off into heavily AI-based examples. Not a tutorial.
Paradigms of Artificial Intelligence: case studies in common Lisp by Peter Norvig, Morgan Kauffman 1992, ISBN 1558601910, £43.69. Deals with fairly advanced topics in AI.
Two books of note on CLOS (the Common Lisp Object System) are:
Object Oriented Programming in Common Lisp: A Programmers Guide to the Common Lisp Object System by Sonya E. Keene, Addison-Wesley 1988, ISBN 0201175894, £21. Extremely well written basic introduction for CLOS beginners.
The Art of the Metaobject Protocol by Gregor Kiczales, Jim Des Rivieres & Daniel G. Bobrow, MIT Press 1991, ISBN 0262610744, £28:56. In-depth look "under the hood" - everything you always wanted to know about how an object system is built but were afraid someone might answer.
There is more than one language with "lisp" in its name. Be wary of any Lisp book which does not explicitly apply to "Common Lisp".
There are many more than these, but the following are all good starting points.
Allegro Common Lisp Commercial Common Lisp implementation by Franz, Inc. A free trial edition is available.
LispWorks Commercial Common Lisp implementation by LispWorks Ltd (a Cambridge based company). A free version, LispWorks Personal Edition, is also available.
CMUCL A free, high performance implementation of the Common Lisp programming language which runs on most major Unix platforms.
Steel Bank Common Lisp Common Lisp implementation based on the CMUCL sources, but with a greater emphasis on maintainability.