This is a small collection of Lisp resources that is intended to be useful for the students in my courses. A source that leads to hundreds of others is the AIMA page at UC Berkeley. They should be more than enough to get you started. The PAIP book, Paradigms of Artificial Intelligence Programming, by Norvig, is not being used as a textbook in my AI course as of Spring 2007, but it is nonetheless an excellent book, well worth studying.
Here is some excerpts from my published review of the book when it first appeared:
"Norvig's Paradigms of Artificial Intelligence Programming is a splendid work that skillfully weaves together three threads: (1) AI, (2) programming skills in general, and (3) programming skills in Common Lisp in particular. It is written with great intelligence and insight and can benefit a wide audience from advanced undergraduates to seasoned researchers. It is a book that should be in the permanent collection of every AI aficionado because it is such a rich source of ideas and examples. ... I have used this book with great success as a supplement in an introductory graduate AI course, the text in a graduate AI course focusing on techniques, and a resource in my research group. ... The code in this book is well written and edifying and pleasurable to read ... This book can lead to a deep appreciation of the unique strengths of Lisp ..." - Prof. Robert Futrelle (Northeastern), AI Magazine, Winter 1994
The PAIP source code, a zip file,
can be found here.
Locally, on Solaris, both the paip.zip and expanded zip file can be found
and copied from /home/futrelle/Lisp/PAIPCodeJan06/.
I successfully ran the following three commands in ACL. The do-examples command took some time to complete - many examples are run.
(load "auxfns.lisp") (requires "examples") (do-examples :all)
An overview of the AIMA code
can be found here.
Locally, on Solaris, both the code.tar and expanded tar file can be found
and copied from /home/futrelle/Lisp/AIMACodeJan06/.
I edited the aima.lisp file there as directed. You'll have to edit it to match your code location. The following four commands in ACL completed quickly, without a hitch:
(load "aima.lisp") (aima-load 'all) (aima-compile) (test 'all)
This is an html version of the manual for the industrial strength Lisp system by
Franz, Inc., that's installed on the CCIS Solaris systems
Allegro CL 6.1 Documentation - Introduction and Overview
Our installation is not the newest, but it has all you'll need. The full commercial system today has database and networking capabilities and much more. See Franz' site.
The book, Common Lisp the Language, 2nd Edition, (1029 pages long in hardcover) can be viewed here as HTML. It includes examples. Here's a copy on our local CCIS system. You can't search it but everything is there including two indexes.
The Common Lisp HyperSpec offers you another way to navigate through the language specifications. It also includes examples.
The ANSI Common Lisp reference pages by Franz, Inc. are nicely arranged. The tree view and the index view are useful also.
This is a nice and rather recent Lisp Primer. To see the type of work that one serious polymath does in fields related to AI, see the homepage of one of the Primer's authors, Colin Allen.
Here's the full text of Seibel's recent and highly rated book Practical Common Lisp. You can download the source code from the book in tar.gz or zip format. The book is on reserve for the courses.
Here's a local copy of a basic lisp book, Basic Lisp Techniques by David J. Cooper, Jr., March 19, 2003.
CLOS is the Common Lisp Object System. Here's a brief guide to CLOS by Jeff Dalton.
Paul Graham's book, On Lisp, is excellent, though somewhat advanced. Here's a local copy of the PDF. Graham's website is full of interesting Lisp-related material.
Simply execute lisp on the command line. Enter :exit to quit. After you've loaded the AIMA or PAIP code and some of your own, you might want to consider executing (dumplisp) from within your running lisp, which will save an image of everything you've done without your having to load it all back in next time you want to do some work. See the Franz documentation above. Follow other directions you find to compile the many files you load. This is important, because running difficult problems can lead to a lot longer runtime if you don't compile.
Go to RPF's Teaching Gateway or homepage