Amazon.com: Customer Reviews: Paradigms of Artificial Intelligence Programming: Case Studies in Common Lisp
Your Garage Summer Reading Amazon Fashion Learn more Discover it $5 Albums Explore Premium Audio Fire TV Stick Sun Care Patriotic Picks Shop-by-Room Amazon Cash Back Offer AnnedroidsS3 AnnedroidsS3 AnnedroidsS3  Amazon Echo  Echo Dot  Amazon Tap  Echo Dot  Amazon Tap  Amazon Echo Starting at $49.99 All-New Kindle Oasis AutoRip in CDs & Vinyl Segway miniPro

Customer Reviews

4.8 out of 5 stars19
Format: Paperback|Change
Price:$57.32+ Free shipping with Amazon Prime
Your rating(Clear)Rate this item


There was a problem filtering reviews right now. Please try again later.

on April 23, 2005
This book has been called "The best book on programming ever written". I'd have to agree--it is certainly the best that I've ever read.

William Zinsser said, "The essence of writing is rewriting" and the same can be said for writing computer programs. Norvig's book presents this process--how the limitations of a program are overcome by revision and rewriting. What sets Norvig apart as a writer is that, amazingly enough, he can write about debugging (the most dreaded part of computer programming) and make it a fascinating read!

Lisp has been getting a higher profile lately because of essayists like Paul Graham and Philip Greenspun; in particular, Greenspun's Tenth Rule of Programming which states: "Any sufficiently complicated C or Fortran program contains an ad hoc, informally-specified, bug-ridden, slow implementation of half of Common Lisp." So, should this book be read as an exhortation to return to Lisp as the preferred programming language?

Paradoxically, I think not. One third of the way through the book, Norvig shows us how to implement Prolog in Lisp. From then on out, most of the AI techniques he presents either directly use Prolog instead of Lisp (such as his excellent discussion of natural language processing using Prolog) or use Prolog as a base to build on (such as his discussions on knowledge representation).

From this we can abstract what I'd like to call Norvig's Corollary to Greenspun's Tenth Law of Programming: "Any sufficiently complicated LISP program is going to contain a slow implementation of half of Prolog". I'm leaving out the "ad hoc", "bug-ridden" part of Greenspuns's law, because Norvig's programs are neither. But it is quite remarkable the degree to which, once having absorbed Prolog, Norvig uses Prolog as the basis for further development, rather than Lisp.

Is this a book about Prolog then? Again, no. What is the take-away message? It is this: as our world becomes more and more complex, and as the problems which programmers are facing become more and more complex, we have to program at a higher and higher level.

Norvig does not stop at just embedding Prolog in Lisp. He also shows us how to embed scheme as well. Excellent discussion on the mysterious call/cc function and on continuations.

In a capsule review, it is impossible to really give an overview of a 1,000 page book like this one. But the scope and heft of the volume really needs to be commented on: the programs presented in this book are like basis vectors, the totality of which nearly span the space of programming itself. In no way should this be considered "just an AI book" or "just a LISP book". This book transcends language, time, and subject matter. It is a programmer's book for the ages.
11 comment|79 people found this helpful. Was this review helpful to you?YesNoReport abuse
on June 20, 2001
This book is equally excellent regardless of whether you wish to regard it as:
a) A historical study of Artificial Intelligence, with USABLE examples of code, or
b) A book presenting techniques for programming in Common Lisp.
As a reference about Common Lisp, it is certainly lacking, but this is no great problem when both the Common Lisp HyperSpec and Steele's book are readily available in electronic form. It provides something more important: SIGNIFICANT examples, and significant discussions on WHY you would use various Lisp idioms, and, fairly often, discussions on HOW pieces of Common Lisp are likely to be implemented. Its discussion of an implementation of the LOOP macro, for instance, provides a very different point of view than the "references" to LOOP. (Contrast too with Graham's books, which largely deprecate the use of LOOP.)
From an AI perspective, it is also very good, providing WORKING SAMPLES for a whole lot of the historically significant AI problems, including Search, PLANNER, symbolic computation, and the likes.
It would be interesting to see parallel works from the following sorts of perspectives:
- The same sorts of AI problems solved using functional languages (e.g. - ML, Haskell), to allow contrasting the use of those more modern languages. Being more "purely functional" has merits; such languages commonly lack macros, which is something of a disadvantage.
- The use of CL to grapple with some other sorts of applications, notably random access to data [e.g. - databases] and rendition of output in HTML/SGML/XML [e.g. - web server].
0Comment|47 people found this helpful. Was this review helpful to you?YesNoReport abuse
on June 2, 1998
I have no background in computer science or AI, but found myself needing to use Lisp for various creative and artistic purposes. I've spent a lot of money on books relating to Common Lisp, but I wish I had just gotten this one and Touretzky's "Gentle Introduction to Symbolic Computation." The particular strengths of this book are its detailed discussion of advanced topics, especially optimization, and the practical overview of current and historical AI topics through programming examples. Very clearly written.
0Comment|37 people found this helpful. Was this review helpful to you?YesNoReport abuse
on November 8, 1997
This is an extremely advanced book on AI techniques. The examples are the best that I have seen in thirty years of Lisp involvment. The author treats many of the classical AI programs and implements them with Common Lisp. Sophisticated search strategies are discussed with example code being given for all of them. A very strong chapter on program optimization is included, a subject often omitted by Lisp writers. Included is complete code for Eliza as well as a treatment of EMYCIN. The author also treats the implementation of embedded languages and gives PROLOG and SCHEME as examples. The book is addressed to production level programmers. This book is definately not for beginners in the Lisp language.
0Comment|17 people found this helpful. Was this review helpful to you?YesNoReport abuse
on September 26, 2011
First, the good:

This book is a great read, both the code and non-code sections. Peter Norvig is clearly passionate about AI, and it comes through in his examples. His writing is clear and fun to read. His code examples are fantastic. When he begins a chapter by describing a problem, you think "wow, that's going to take ages to get through." Then you flip the page, and he's got all the code down on the next page. It's a real joy to see clear, concise, well-written code like this. This is probably what musicians feel when they listen to a Beethoven sonata.

The bad: the examples are historical (read: dated), and they don't teach you a whole lot about either AI or Lisp. If you know depth first search and regular expressions, you can breeze through the first 250 pages of this book: it won't show you anything besides some very well-written code (which, let me emphasize again, is really great to read). Unless you are using Lisp as your programming language (I'm using Haskell), section 3 (optimizing your Lisp code + Logic programming) will be hit and miss too.

So, to sum up:

If you want to learn Lisp, Norvig recommends Paul Graham's book.
If you want to learn AI, Norvig has written AI: A Modern Approach.

I spent five bucks on a used copy of this book, and felt like I got my money's worth. I would definitely not spend $80+ on it.
33 comments|17 people found this helpful. Was this review helpful to you?YesNoReport abuse
on April 12, 2006
"Paradigms of Artificial Intelligence Programming" is one of the best books of computer science that I have ever read. I put it up there in the pantheon with "Structure and Interpretation of Computer Programs". I have found more useful and mind expanding material in these case studies than I have in many other books on computer science. I highly recommend this book to anyone, even if they have never used Lisp.
0Comment|13 people found this helpful. Was this review helpful to you?YesNoReport abuse
on April 2, 1998
I borrowed this one from a friend, and I am hesitant to return it. The sections on optimization have been reread often.
I would not say the book is advanced. A college degree and one semester of LISP instruction, (and maybe access to an "old timer") should be sufficient if you patiently work your way through. The latter chapters are relatively independent of each other, so don't worry if a section seems too hard.
The chapter on GPS is of historical interest, but so obviously dated that I did not work any of the examples in this chapter - but that's the strength of the book - different people will find different chapters interesting.
0Comment|13 people found this helpful. Was this review helpful to you?YesNoReport abuse
on November 1, 2015
Great book, bad Kindle version.

I'm an undergrad. I bought this to learn Lisp, and it's absolutely blown my mind with how good it is. I've learned more from this book than I ever will from my college classes. I'd say this has been a really good introduction to Lisp, and a really good introduction to AI. It's easily becoming my favorite programming book. It's covered more material than 3/4 of my programming classes combined.

The kindle version is bad though. The syntax is all wonky, which is critical when you need to differentiate `s from 's and ,s from .s. There are tons of misspellings in the kindle version. The code formatting is very difficult to read. Thankfully I've been able to get the code from the Peter Norvig's web page. If you can, get the paper edition. This is the second Common Lisp book I've read, so I've had enough experience that I can debug all of these problems myself.
0Comment|2 people found this helpful. Was this review helpful to you?YesNoReport abuse
on May 28, 2010
Don't let the title of the book fool you: Yes, it presents all its code in Common Lisp and yes, the domain it discusses mostly is Artificial Intelligence, but PAIP (as it's affectionately called by fans) is a book about the general process of designing programs and implementing them. It's just a by-product that along the way you will learn Common Lisp (which is a very interesting language) and will get familiar with some very interesting problems in the fields of AI, code optimization, search, compilation and OOP/

Peter Norvig is a masterful programmer and writer. His code is excellently thought-out and designed, and shines with originality and clarity at every snippet you read. Every chapter has interesting insights and great code in it. Reading through this book from cover to cover is a behemoth task, but even starting small is great. Norvig even includes several exercises *with solutions* for each chapter, which really helps understanding the material.

In short, PAIP is one of the best books about programming and computer science I have ever read. It is highly recommended.
0Comment|7 people found this helpful. Was this review helpful to you?YesNoReport abuse
on January 28, 2013
As for AI part I must say that even though this book is somewhat old, its still very good for people new to the world of AI (such as myself). Since I only have another Norvig's book (http://www.amazon.com/Artificial-Intelligence-Modern-Approach-Edition/dp/0137903952/ref=sr_1_3?ie=UTF8&qid=1359373092&sr=8-3&keywords=Norvig) to compare to I must say that this book takes a more practical approach, allowing one to understand ways in which implementation efficiency can be improved.

For CL part - the best CL introduction and real world usage book in my opinion. Yes, I've read PCL, yet still this book digs a lot deeper when it comes to optimization patterns for Common Lisp. Motivation for almost every design choice is clear (overcoming Prolog's drawbacks is one of my favorite parts).

Also this book offers a variety of exercises and some of those are quite a time-killers.

As for cons - some of the exercises are formulated a bit freely. And again, book is 20 years old, so some content is a bit outdated, especially techno-related.
0Comment|One person found this helpful. Was this review helpful to you?YesNoReport abuse

Send us feedback

How can we make Amazon Customer Reviews better for you?
Let us know here.