This version of Learn Prolog Now! embeds SWI SH , SWI-Prolog for SHaring. The current version rewrites the Learn Prolog Now! HTML on the fly, recognising source code and example queries. It is not yet good at recognising the relations between source code fragments and queries. Also Learn Prolog Now! needs some updating to be more compatible with SWI-Prolog. All sources are on GitHub:
LearnPrologNow LPN SWISH Proxy SWISH

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.

p.95
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-2012 Patrick Blackburn, Johan Bos, Kristina Striegnitz