LISP is a university textbook on the Lisp programming language, written by Patrick Henry Winston and Berthold Klaus Paul Horn. It was first published in 1981, and the third edition of the book was released in 1989.[1] The book is intended to introduce the Lisp programming language and its applications.[2] : Preface 

LISP
AuthorPatrick Henry Winston and Berthold Klaus Paul Horn
LanguageEnglish
GenreComputer science
PublisherAddison-Wesley
Publication date
1989 (3rd Ed.)
Media typebook
Pages611 (3rd Ed.)
ISBN0-201-08319-1
005.13 3
Websitehttps://people.csail.mit.edu/phw/Books/index.html

Editions edit

Three editions were published in 1981, 1984, and 1989 respectively. The first edition replaced part 2 in the first edition of Artificial Intelligence (Winston), and introduced the use of Maclisp.[3] The second edition introduced Common Lisp[4]: Preface  and Flavors.[4]: 239  The third edition added the Common Lisp Object System, along with improved procedure definitions, and added topics.[2]: Preface [5]

Content edit

LISP covers the basics of the language using the Common Lisp standard including the Common Lisp Object System (CLOS). Applications are drawn from expert systems, natural language interfaces, symbolic mathematics, probability bounds, project simulation, and visual object recognition. Problem solving paradigms including search, forward chaining, and problem reduction are explained. Constraint propagation, and backward chaining are discussed. Other topics include mapping, streams, and delayed evaluation.[2]: Back cover 

Table of contents (3rd edition) edit

  • Part I - Basics of Lisp
    • Chapter 1 - Symbolic manipulation
    • Chapter 2 - Lisp primitives
    • Chapter 3 - Procedure definition and binding
    • Chapter 4 - Predicates and conditionals
    • Chapter 5 - Procedure abstraction and recursion
    • Chapter 6 - Data abstraction and mapping
    • Chapter 7 - Iteration on numbers and lists
    • Chapter 8 - File editing, compiling, and loading
    • Chapter 9 - Printing and reading
    • Chapter 10 - Rules for good programming and debugging
  • Part II - Intermediate and advanced Lisp
    • Chapter 11 - Properties and arrays
    • Chapter 12 - Macros and backquote
    • Chapter 13 - Structures
    • Chapter 14 - Classes and generic functions
    • Chapter 15 - Lexical variables, generators and encapsulation
    • Chapter 16 - special variables
    • Chapter 17 - List storage, surgery, and reclamation
    • Chapter 18 - Lisp in Lisp
  • Part III - Applications
    • Chapter 19 - Search
    • Chapter 20 - Simulation
    • Chapter 21 - Blocks world
    • Chapter 22 - Answering questions about goals
    • Chapter 23 - Constraint propagation
    • Chapter 24 - Symbolic pattern matching
    • Chapter 25 - Streams and delayed evaluation
    • Chapter 26 - Rule-based expert systems and forward chaining
    • Chapter 27 - Backward chaining and Prolog
    • Chapter 28 - Interpreting transition trees
    • Chapter 29 - Compiling transition trees
    • Chapter 30 - Procedure-writing programs and database interfaces
    • Chapter 31 - Finding patterns in images
    • Chapter 32 - Converting notations, manipulating matrices, and finding roots

Of introductory Lisp textbooks, LISP is said to cover the most ground in terms of programming advice, though it may be difficult for beginners.[6]: xiv  Highlighted areas include pattern matching,[6]: 168 [6]: 213  logic programming,[6]: 367  and Lisp interpreter development.[6]: 777 

References edit

See also edit

External links edit