The built-in predicates listed in the table below are exported from the common-prolog
(clog
) package.
same as Prolog | |
standard Prolog | |
standard Prolog | |
standard Prolog | |
same as Prolog except all variables sort as identical | |
ditto | |
ditto | |
ditto | |
standard Prolog | |
standard Prolog | |
standard Prolog | |
standard Prolog | |
standard Prolog | |
standard Prolog (unusual syntax)* | |
standard Prolog | |
standard Prolog | |
cause debugging information to be saved for each call whether it is spied or not | |
display a list of all spied goals | |
define a relation and declare it to be deterministic | |
define a grammar rule | |
define a relation | |
define a logic macro | |
like defrelmacro but can have &rest in | |
declare the relation called | |
delete the predicate with database reference | |
standard Prolog | |
generate all solutions to ?goal and instantiate | |
same as findall/3 but removes duplicates | |
standard Prolog | |
exit Common Prolog | |
standard Prolog | |
standard Prolog | |
standard Prolog except uses alist style cons pairs | |
cause the interpreter to pause and ask for input when one of the leashed events is traced. An event-spec is one of: | |
display a listing of the named predicate or listings for each arity if no arity is specified | |
standard Prolog | |
leave debug mode (cease saving debug info for non-spied goals) | |
standard Prolog | |
remove | |
standard Prolog | |
turn off exhaustive tracing for debugged goals | |
satisfy | |
return a list of | |
read in a term | |
standard Prolog | |
standard Prolog | |
standard Prolog | |
standard Prolog | |
standard Prolog | |
standard Prolog (unusual syntax)* | |
standard Prolog | |
spy | |
turn on tracing for debugged goals, also turn on debugging for the next top level goal | |
translate back and forth between internal and external variable representations. Can be used to pretty up the writing of terms containing variables | |
standard Prolog | |
Undo leashing for | |
standard Prolog | |
standard Prolog way to call a grammar rule | |
| standard Prolog way to call a grammar rule |
* setof
and bagof
in standard Prolog use a special syntax for existentially quantified variables, for example:
?- setof(X, Y^foo(X,Y), Z).
In Common Prolog, this would look like:
==> (setof ?x ((foo ?x ?y) ?y) ?z)
So, a goal with no existentially quantified variables is nested in an extra set of parentheses:
==> (bagof ?x ((bar ?x)) ?z)
KnowledgeWorks and Prolog User Guide (Macintosh version) - 01 Dec 2021 19:35:39