The current version of the website lives at Please change your links to point to instead of here.

Errata of the first printing

This is a list of errata for the first printing of the handheld version of 'Learn Prolog Now!'. If you find any mistakes that are not listed here, yet, please let us know.

The mistakes in this list have been corrected in the second printing.

accLen3/ should be accLen/3.
p. 169
novar should be nonvar.
p. 115, p.116
reverse/2 should be rev/2. Actually, in SWI Prolog reverse/2 is a built-in predicate which does what rev/2 does, namely reverse a list. So, if you are using SWI Prolog, you can write reverse/2 instead of rev/2.
pp. 119-137, Chapter 7
In this chapter, we sometimes refer to "extra goals" and sometimes to "extra test". That's the same thing.
p. 136
In the middle of the page, under number 2, it should be: and the b and c blocks are also exactly the same length and furthermore consist of an even number of bs and cs.
p. 156
The last rule of the DCG should be v --> [eats].
p. 236, Answer 1.3
The goals in this knowledge base are: man(X), woman(X), father(X,Y), man(Y), son(Z,Y), daughter(Z,Y). knows(Y,X) is not a goal. (It's not even mentioned in the knowledge base.)
p. 240
There is one occurrence of criminal in single quotes. It should be without quotes.
p. 246, Answer 6.2
This answer uses the predicate reverse/2 which is built-in in SWI Prolog. If you are using some other version of Prolog, you should use rev/2 as defined in Chapter 6 instead.
p. 248, Answer 7.1
In the last line of the internal representation of the DCG, there is a goal wriggle(C,B). It should be wiggle(C,B).
p. 248, Answer 8.1
The NP-rule should be np(Num) --> det(Num), n(Num). And the determiner rules should be det(_) --> [the] and det(sg) --> [a].

These errors were reported by: Hélène Manuélian

eXTReMe Tracker
© 2006, 2007, 2008 Patrick Blackburn, Johan Bos, Kristina Striegnitz