Go to the first, previous, next, last section, table of contents.


Control constructs/predicates

Author(s): Daniel Cabeza, Manuel Hermenegildo.

Version: 1.7#72 (2001/3/25, 19:56:27 CEST)

Version of last change: 1.7#37 (2001/1/2, 16:47:3 CET)

This module contains the set of basic control predicates, except the predicates dealing with exceptions, which are in section Exception handling.

Usage and interface (basiccontrol)

Documentation on exports (basiccontrol)

PREDICATE: ,/2:

P , Q

Conjunction (P and Q).

Usage 2: * ISO *

PREDICATE: ;/2:

P ; Q

Disjunction (P or Q).

Usage 2: * ISO *

PREDICATE: ->/2:

P -> Q

If P then Q else fail, using first solution of P only. Also, (P -> Q ; R), if P then Q else R, using first solution of P only. No cuts are allowed in P.

Usage 2: * ISO *

PREDICATE: !/0:

Usage 1: * ISO *

Usage 2: * ISO *

PREDICATE: \+/1:

\+ P

Goal P is not provable (negation by failure). Fails if P has a solution, and succeeds otherwise. No cuts are allowed in P.

Usage 2: * ISO *

PREDICATE: if/3:

if(P,Q,R)

If P then Q else R, exploring all solutions of P. No cuts are allowed in P.

Usage 2:

PREDICATE: true/0:

Usage 1: * ISO *

Usage 2: * ISO *

PREDICATE: fail/0:

Usage 1: * ISO *

Usage 2: * ISO *

PREDICATE: repeat/0:

Usage 1: * ISO *

Usage 2: * ISO *

PREDICATE: call/1:

call(G)

Executes goal G, restricting the scope of the cuts to the execution of G. Equivalent to writing a variable G in a goal position.

Meta-predicate with arguments: call(goal).

Usage 2: * ISO *

Documentation on internals (basiccontrol)

PREDICATE: |/2:

An alias for disjunction (when appearing outside a list). The alias is performed when terms are read in.


Go to the first, previous, next, last section, table of contents.