This page summarizes all remarks and errors discovered in the
book Prolog - The standard : Reference Manual.
Please report additional errata by email to: Ali.EDDBALI (at) univ-orleans.fr
Page # | Location | Original text (if any) | Correct text |
---|---|---|---|
10 | 2nd clause of sumlist predicate | sumlist([X,L],S) :- sumlist(L,R), S is R + X. | sumlist([X|L],S) :- sumlist(L,R), S is R + X. |
51 | Last line | atom_chars(X,[a|X]) | atom_chars(X,[a|L]). (Produces the same error) |
58 | How to use it | bagof(@term, +body_term, ?list) | bagof(?term, +body_term, ?list) |
59 | Line 1 (note 5) | The variables of Template and the non free variables of Bgoal remain uninstantiated after each success of bagof(Template, Bgoal, Blist). | The variables of Template and the non free variables of Bgoal which do not occur in Blist remain uninstantiated after each success of bagof(Template, Bgoal, Blist). |
71 | Example 2 | close(user_input). | close(user_input, []). |
79 | Last line | current_op(0,X,Y). domain_error(operator_priority,0) | This may not be required by the standard. A trully standard conforming example would be: current_op(-1,X,Y). It is in fact not clear in the standard whether 0 is an element of the operator priority. |
88 | How to use it | findall(@term, @body_term, ?list) | findall(?term, +body_term, ?list) |
93 | Description, item 4 | Arity is an integer n, 0 < n < maxarity | Arity is an integer n, 0 < n <= maxarity |
146 | Error cases | St in Error-term should be read Stream_or_alias | |
155 | Example 3 | Replace insect(A) by animal(A) and insect(_01) by animal(_01) | |
158 | Description, line 3 | autorzied | authorized |
160 | How to use it | setof(@term, @body_term, ?list) | setof(?term, +body_term, ?list) |
165 | Description, line 7 | repective | respective |
167 | Example 3 | north(a) @> foo(a, b). Succeeds. | north(a) @> foo(a, b). Fails. |
168 | Example 4 | north(a) @>= foo(a, b). Succeeds. | north(a) @>= foo(a, b). Fails. |
179 | Description, item 5 | 0 < n < maxarity | 0 < n <= maxarity |
182 | Examples | Add the following example | write('Fred'). Succeeds with empty substitution, and the current output stream is left as: ...Fred |
192 | Examples | Add the following example | writeq('Fred'). Succeeds with empty substitution, and the current output stream is left as: ...'Fred' |
The authors are very grateful to Dr.
Johnathan Hodgson, from Saint Joseph's University, who pointed out most of these mistakes.
Many thanks also to George S. Cowan (ACM).