- Series: Logic Programming
- Paperback: 416 pages
- Publisher: The MIT Press (December 7, 2009)
- Language: English
- ISBN-10: 0262512270
- ISBN-13: 978-0262512275
- Product Dimensions: 7 x 1.1 x 9 inches
- Shipping Weight: 1.6 pounds (View shipping rates and policies)
- Average Customer Review: 10 customer reviews
- Amazon Best Sellers Rank: #1,346,739 in Books (See Top 100 in Books)
Enter your mobile number or email address below and we'll send you a link to download the free Kindle App. Then you can start reading Kindle books on your smartphone, tablet, or computer - no Kindle device required.
To get the free app, enter your mobile phone number.
The Craft of Prolog (Logic Programming)
Use the Amazon App to scan ISBNs and compare prices.
"Warlight" by Michael Ondaatje
A dramatic coming-of-age story set in the decade after World War II, "Warlight" is the mesmerizing new novel from the best-selling author of "The English Patient." Learn more
Frequently bought together
Customers who bought this item also bought
About the Author
Richard A. O'Keefe is Lecturer in the Department of Computer Science at the Royal Melbourne Institute of Technology. He is also a consultant to Quintus Computer Systems, Inc.
Top customer reviews
There was a problem filtering reviews right now. Please try again later.
That said, there are a few issues. For one, a surprising amount of information is not very relevant nowadays, since a lot is specialized towards different engines which were popular at the time it was written. An entire chapter is devoted to how different engines at the time worked and the sort of optimizations they performed, which isn't very useful. A bigger issue is that content-wise, if you've spent awhile with Prolog already, there isn't likely to be a lot to pick up. I found that the book tended to endorse patterns I was already using, which I'd figured out through reading online or basic trial and error. It was good to know that I wasn't going off in some weird direction, but there wasn't a lot of new content to me.
The author tends to be inconsistent with himself. Early on, he describes a bunch of rules for how code should be structured, and explains basically that this is how everyone should be doing it. He then proceeds to violate his own rules on a multitude of occasions, and only occasionally mentions why there's a violation.
By far, the biggest issue I had with this book was that I found the author's attitude to be _extremely_ condescending, to the point where I literally burst out laughing at multiple points at the sheer ridiculousness of it. Two examples:
1.) At one point, he states that something shouldn't be done a certain way, because it would be very tricky to get right. He then puts in parenthesis that he's done it before. This only serves to inflate his own ego; it doesn't add a thing to the writing.
2.) He takes an example from some other work at some point. He explains at length that the example is badly written, and proceeds to rewrite it. He never cites the work he takes it from _as a favor to the author of the work_ - he explains the work is overall good, but the example is so bad that it would disincline people to read the work. I have no idea what he's referencing, and I would actually like to read it because the example isn't actually bad.
Further, while in theory I divide the the set of all programming languages into clean Lisp dialects (i.e. scheme, ml, haskell) on the one hand, and other programming languages that are inadequate to the extent that they diverge from the Scheme/ML model on the other, I find that a lot of the time it is actually Prolog that provides the best tool for modelling the transaction-handling systems that I have to deal with in the course of earning my bread.
Whether you use Prolog or not, if you are serious about programming then you want to have a copy of this, simply because it shows how a world class programmer negotiates an unusual, but interesting, programming paradigm. And, as O'Keefe himself is, or at least used to be, fond of pointing out, your skill as a programmer is substantially correlated with the number of different such paradigms that you understand properly, and not very much with anything else.
Highly recommended if you are really interested in advanced programming.