This third edition is a revised and expanded version of Winston and Horn's best-selling introduction to the Lisp programming language and to Lisp-based applications, many of which are possible as a result of advances in Artificial Intelligence technology. The Knowledge You Need The new edition retains the broad coverage of previous editions that has made this book popular both with beginners and with more advanced readers -- coverage ranging from the basics of the language to detailed examples showing Lisp in practice. Based on the CommonLisp standard, this book also introduces CommonLisp's object system, CLOS, and the productivity-promoting techniques enabled by object-oriented programming. Application examples drawn from expert systems, natural language interfaces, and symbolic mathematics are featured, and new applications dealing with probability bounds, project simulation, and visual object recognition are introduced. Special Features of this Edition *Based on extensive teaching experience *Explains key problem solving paradigms, such as search, forward chaining, and problem reduction *Discusses constraint propagation, backward chaining, and key ideas in Prolog *Emphasizes procedure and data abstraction, and other points of programming style and practice *Covers cliches, mapping, streams, delayed evaluation, and techniques for better and faster procedure definition 0201083191B04062001
I tried to teach myself Lisp with this book as a senior in high school, after learning the basics of C, C++, Pascal, and Java. None of those prepare you for the leap. Though I could see the possibilities were intriguing, I never got anywhere. Paul Graham's book "ANSI Common Lisp" taught me Lisp in a graduate class—it's unusually eloquent for such a technical book. The Winston "Lisp" has historical interest as a classic.
I did not read through the whole book. I got interested in it because the documentation for Interlisp/65 (the implementation I've been using) mentioned it. The introduction piqued my interest, because it said it sourced material from DARPA work. I read chapters 15-23, because the other stuff in the book was either elementary to me (the first chapters are introductory Lisp), or stuff I wasn't interested in.
I'd call this more an elementary artificial intelligence book. AI is something I've shied away from for years, but this book showed me that it can contribute toward some goals I have. It has some pretty interesting material that I did not get into, such as a discussion of image recognition, and how to do it. I was more interested in the sections on pattern recognition, language interpretation and domain-specific languages, and compiling a language. At the end, it has the reader write a simple Lisp interpreter in Lisp. Pretty neat!
I found in spots that the example code was buggy, and sometimes the description of what it wanted you to do in an exercise was unclear. So, I'd advise patience. I see here on Goodreads that there was a third, expanded edition of the book. Maybe they updated the Lisp they used for the examples. What they used for this edition was MacLisp (developed as part of Project MAC at MIT in the mid-1960s). Fortunately Interlisp came with a MacLisp emulation package. The dominant Lisp implementation nowadays seems to be Common Lisp, which has some differences from MacLisp. So I imagine those who are familiar with CL will have some trouble with the examples.
A striking thing about this book is that it disabuses you fairly quickly of the notion that Lisp is a functional language. The example code uses the PROG construct a lot, which has you setting up labels in procedural code, so you can use the GO command (equivalent of GOTO in other languages) for iterative looping. Recursion is used in many examples, but not as much as would be expected from a book that emphasizes functional programming.