Answers

Question and Answer:

  Home  Lisp Programming

⟩ Lisp books, introductions, documentation, periodicals, journals, and conference proceedings!

There are several good Lisp introductions and tutorials:

1. David S. Touretzky

"Common Lisp: A Gentle Introduction to Symbolic Computation"

Benjamin/Cummings Publishers, Redwood City, CA, 1990. 592 pages.

ISBN 0-8053-0492-4 ($42.95).

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 by anonymous ftp from

b.gp.cs.cmu.edu:/usr/dst/public/lisp/

b.gp.cs.cmu.edu:/usr/dst/public/evaltrace/

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.

2. Robert Wilensky.

"Common LISPcraft"

W. W. Norton, New York, 1986. 500 pages. ISBN 0-393-95544-3.

3. Wade L. Hennessey.

"Common Lisp"

McGraw-Hill, New York, 1989. 395 pages. ISBN 0-07-028177-7, $26.95.

Fairly good, but jumps back and forth from the simple to the

complex rather quickly, with no clear progression in difficulty.

4. Laurent Siklossy.

"Let's Talk LISP"

Prentice-Hall, NJ, 1976. 237 pages, ISBN 0-13-53276-2-8.

Good introduction, but quite out of date.

5. Stuart C. Shapiro.

"Common Lisp: An Interactive Approach"

Computer Science Press/W.H. Freeman, New York, 1992.

358 pages, ISBN 0-7167-8218-9.

The errata for the book may be obtained by anonymous ftp from

ftp.cs.buffalo.edu:/users/shapiro/clerrata.ps

Other introductions to Lisp include:

1. A. A. Berk.

"LISP, The Language of Artificial Intelligence"

Van Nostrand Reinhold, 1985. 160 pages, ISBN 0-44-22097-4-6.

2. Paul Y. Gloess.

"An Alfred handy guide to Understanding LISP"

Alfred Publishers (Sherman Oaks, CA), 1982.

64 pages, ISBN 0-88-28421-9-6, $2.95.

3. Ward D. Maurer.

"The Programmer's Introduction to LISP"

American Elsevier, New York, 1972. 112 pages, ISBN 0-44-41957-2-6.

4. Hank Bromley and Richard Lamson.

"LISP Lore: A Guide to Programming the LISP Machine", 2nd edition

Kluwer Academic, Boston, 1987. 337 pages, ISBN 0-89-83822-8-9, $49.95.

5. Sharam Hekmatpour.

"Introduction to LISP and Symbol Manipulation"

Prentice Hall, New York, 1989. 303 pages, ISBN 0-13-53749-0-1, $40.

6. Deborah G. Tatar

"A programmer's guide to Common Lisp"

Digital Press, 1987. 327 pages. ISBN 0-932376-87-8.

Good introduction on Common Lisp for programmers familiar

with other programming languages, such as FORTRAN, PASCAL, or C.

7. Timothy Koschmann

"The Common Lisp Companion"

John Wiley & Sons, 1990. 459 pages, ISBN 0-471-503-8-8.

Targeted for those with some programming experience who wish to

learn draft-ANSI Common Lisp, including CLOS and the CL condition

system. Examples progress incrementally from simple numerical

calculation all the way to a logic-programming extension to CL.

More advanced introductions to Lisp and its use in Artificial

Intelligence include:

1. Peter Norvig.

"Paradigms of AI Programming: Case Studies in Common Lisp"

Morgan Kaufmann, 1992. 946 pages. ISBN 1-55860-191-0 ($49.95).

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 by anonymous ftp from

unix.sri.com:/pub/norvig and on disk in Macintosh or DOS format from

the publisher. 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-labelling), 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.

2. Eugene Charniak, Christopher K. Riesbeck, Drew V. McDermott

and James R. Meehan.

"Artificial Intelligence Programming", 2nd edition.

Lawrence Erlbaum Associates (Hillsdale, NJ), 1987.

533 pages, ISBN 0-89-85960-9-2, $29.95.

Provides many nice code fragments, all of which are written

in Common Lisp. The first half of the book covers topics

like macros, the reader, data structures, control structures,

and defstructs. The second half of the book describes

programming techniques specific to AI, such as

discrimination nets, production systems, deductive database

retrieval, logic programming, and truth maintenance.

3. Patrick H. Winston and Berthold K. P. Horn.

"LISP", 3rd edition.

Addison-Wesley (Reading, MA), 1989. 611 pages. ISBN 0-201-08319-1

Covers the basic concepts of the language, but also gives a lot

of detail about programming AI topics such as rule-based expert

systems, forward chaining, interpreting transition trees,

compiling transition trees, object oriented programming,

and finding patterns in images. Not a tutorial. Has many

good examples. Source code for the examples is available by

anonymous ftp from ftp.ai.mit.edu:/pub/lisp3/. (The code runs in

Lucid, Allegro, KCL, GCLisp, MCL, Symbolics Genera. Send mail

with subject line "help" to ai3@ai.mit.edu for more information.)

4. John R. Anderson, Albert T. Corbett, and Brian J. Reiser.

"Essential LISP"

Addison-Wesley (Reading, MA), 1987.

352 pages, ISBN 0-20-11114-8-9, $23.95.

Concentrates on how to use Lisp with iteration and recursion.

5. Robert D. Cameron and Anthony H. Dixon

"Symbolic Computing with Lisp"

Prentice-Hall, 1992, 326 pages. ISBN 0-13-877846-9.

The book is intended primarily as a third-year computer science

text. In terms of programming techniques, it emphasizes recursion

and induction, data abstraction, grammar-based definition of Lisp

data structures and functional programming style. It uses

two Lisp languages:

(1) a purely functional subset of Lisp called Small Lisp and

(2) Common Lisp.

An MS-DOS interpreter for Small Lisp (including source) is

provided with the book. It considers applications of Lisp

to formal symbolic data domains: algebraic expressions,

logical formulas, grammars and programming languages.

6. Tony Hasemer and John Domingue.

"Common Lisp Programming for Artificial Intelligence"

Addison-Wesley, Reading, MA, 1989. 444 pages, ISBN 0-20-11757-9-7.

This book presents an introduction to Artificial Intelligence

with an emphasis on the role of knowledge representation. Three

chapters focus on object-oriented programming, including the

construction and use of a subset of CLOS.

The authors' research into the problems faced by novice Lisp

users influenced the content and style of the book. (The authors

are members of the Human Cognition Research Laboratory at the

Open University in the United Kingdom.) The book employs a

tutorial approach, especially in areas that students often find

difficult, such as recursion. Early and progressive treatment of

the evaluator promotes understanding of program execution.

Hands-on exercises are used to reinforce basic concepts.

The book assumes no prior knowledge of Lisp or AI and is a

suitable textbook for students in Cognitive Science, Computer

Science and other disciplines taking courses in Lisp or AI

programming as well as being invaluable for professional

programmers who are learning Lisp for developing AI applications.

7. Steven Tanimoto

"The Elements of Artificial Intelligence Using Common Lisp", 2nd edition

Computer Science Press, New York, 1995.

562 pages, ISBN 0-71-67826-9-3, (ISBN 0-71-67823-0-8, 1990, $48).

8. Patrick R. Harrison

"Common Lisp and Artificial Intelligence"

Prentice Hall, Englewood Clifs, NJ, 1990.

244 pages, ISBN 0-13-1552430, $22.50.

9. Paul Graham

"On Lisp: Advanced Techniques for Common Lisp"

Prentice Hall, Englewood Clifs, NJ, 1994. 413 pages, ISBN 0-13-030552-9.

Emphasizes a bottom-up style of writing programs, which he

claims is natural in Lisp and has advantages over the

traditional way of writing programs in C and Pascal.

Also has in-depth sections on writing macros with several

nice examples. Source code is available by anonymous ftp from

ftp.das.harvard.edu:/pub/onlisp/

as a single 56kb file.

10. John A. Moyne

"Lisp: A first language for computing"

Van Nostrand Reinhold, New York, 1991. 278 pages, ISBN 0442004265.

General Lisp reference books include:

1. ANSI/X3J13

Programming Language Common Lisp (ANSI/X3.226-1994)

American National Standards Institute

11 West 42nd Street, New York, NY 10036.

http://www.ansi.org/

2. Kent M. Pitman

Common Lisp HyperSpec (TM)

Harlequin, Inc., 1996.

This is an HTML-only document available via the web.

Available for browsing from

http://www.harlequin.com/books/HyperSpec/FrontMatter/

Available free for download (subject to some legal restrictions) from

http://www.harlequin.com/books/HyperSpec/

Includes text from ANSI/X3.226-1994 and other design rationales.

3. Guy L. Steele

"Common Lisp: The Language" [CLtL1]

Digital Press, 1984. 465 pages. ISBN 0-932376-41-X.

4. Guy L. Steele

"Common Lisp: The Language, 2nd Edition" [CLtL2]

Digital Press, 1990. 1029 pages, ISBN 1-55558-041-6 paperbound ($39.95).

[Butterworth-Heinemann, the owners of Digital Press, have made

the LaTeX sources to this book available by anonymous FTP from

cambridge.apple.com:/pub/CLTL/

A copy of the distribution is also available from

ftp.cs.cmu.edu:/user/ai/lang/lisp/doc/cltl/

The paperbound version of the book is, of course, available at

fine bookstores, or contact them directly at Digital Press,

225 Wildwood Street, Woburn, MA 01801, call 800-366-2665

(617-928-2527), or fax 800-446-6520 (617-933-6333). A copy of

the Digital Press book catalog is available from the same FTP location.]

A html version, produced using latex2html on the latex sources,

is accessible via the URL:

http://www.cs.cmu.edu/Web/Groups/AI/html/cltl/cltl2.html

5. Franz Inc.

"Common Lisp: The Reference"

Addison-Wesley, Reading, MA 1988. ISBN 0-201-11458-5

Entries on Lisp (CLtL1) functions in alphabetical order.

 217 views

More Questions for you: