Lisp Programming Question:
Download Job Interview Questions and Answers PDF
Lisp books, introductions, documentation, periodicals, journals, and conference proceedings!
Answer:
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.
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.
Download Lisp Programming Interview Questions And Answers
PDF
Previous Question | Next Question |
How to pass commands to LG3? | How to save programs to files? |