This page summarizes all remarks and errors discovered in the book Prolog
- The standard.
Please report additional errata by mail to: AbdelAli.ED-DBALI@lifo.univ-orleans.fr
Page number | Location | Original text (if any) | Correct text |
---|---|---|---|
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 Strean_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 Johnathan Hodgson who pointed out most of these mistakes.