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