Path: utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!sdd.hp.com!uakari.primate.wisc.edu!crdgw1!uunet!mcsun!ukc!edcastle!aiai!jeff From: jeff@aiai.ed.ac.uk (Jeff Dalton) Newsgroups: comp.lang.lisp Subject: Re: A good book for learning Common LISP Message-ID: <3782@skye.ed.ac.uk> Date: 19 Nov 90 17:39:05 GMT References: <126121@linus.mitre.org> <14630@neptune.inf.ethz.ch> Reply-To: jeff@aiai.UUCP (Jeff Dalton) Organization: AIAI, University of Edinburgh, Scotland Lines: 99 1. Texts There are a fair number of reasonably good Common Lisp texts. In my opinion, though, the best place to begin is with Touretzky's "Gentle Introduction": David S. Touretzky. {\em Common Lisp: A Gentle Introduction to Symbolic Computation}. Benjamin/Cummings, 1990. Despite the seeming implications of "gentle", it does cover some fairly advanced topics. The explanations are clear and almost always correct. (It may be wrong somewhere, but I don't know of any cases off hand.) However, the best Lisp text happens to use Scheme instead of Common Lisp: Harold Abelson and Gerald Jay Sussman with Julie Sussman. {\em Structure and Interpretation of Computer Programs}. The MIT Press, Cambridge, Massachusetts, 1985. It's well worth reading even if you plan to use Common Lisp rather than Scheme; you should be able to do most of the exercises in Common Lisp after you've read Touretzky (or some other CL text). If you can't find Touretzky, or don't think it's quite what you want, so other books to consider are: Robert R. Kessler. {\em Lisp, Objects, and Symbolic Programming}. Scott, Foresman and Company, Glenview, Illinois, 1988. Patrick Henry Winston and Berthold Klaus Paul Horn. {\em LISP}. Addison-Wesley, Reading, Massachusetts, third edition, 1988. Wade Hennesey's book is also pretty good, but I don't remember the exact title. 2. References If you plan to do some serious CL programming, you will eventually need a copy of CLtL II: Guy L. Steele Jr. {\em Common LISP: The Language}, Digital Press, second edition, 1990. Another reference, with entries in alphabetical order (and so perhaps easier to find), is: Franz Inc. {\em Common Lisp: The Reference}. Addison-Wesley, Reading, Massachusetts, 1988. The key advantage of CLtL II is that it will tell you what's happened since 1984. 3. Advanced topics Eugene Charniak, Christopher K. Riesbeck, Drew V. McDermott, James R. Meehan. {\em Artificial Intelligence Programming}. Lawrence Erlbaum Associates, Hillsdale, New Jersey, second edition, 1987. Sonya E. Keene. {\em Object-Oriented Programming in Common Lisp: A Programmer's Guide to CLOS}. Addison-Wesley, Reading, Massachusetts, 1989. Molly M. Miller and Eric Benson {\em Lisp Style & Design} Digital Press, 1990. Charniak et al discuss AI programming techniques. Drawbacks: some of their examples are harder to follow that they ought to be, and their publisher didn't have a good font for Lisp code (it uses upper case dot matrix!). Keene is a good introduction to CLOS, the Common Lisp Object System. It has enough reference material for most purposes and also gives some good advice on how CLOS should be used. It's main drawback is that the examples tend to be small and tend to concern systems programming. But it is the best book about CLOS available. Well, ok, maybe it's the only book. But it's (much) better than the CLOS sections of books that have such sections. Get it if you're going to use CLOS. Miller and Benson is aimed at helping you to become a better Lisp programmer. So far as I know, it is the only CL book that directly addresses the problem of writing large programs (which we might call "macrostyle"), but it is also good on "microstyle". Jeff Dalton, JANET: J.Dalton@uk.ac.ed AI Applications Institute, ARPA: J.Dalton%uk.ac.ed@nsfnet-relay.ac.uk Edinburgh University. UUCP: ...!ukc!ed.ac.uk!J.Dalton