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


Control constructs/predicates

Author(s): Daniel Cabeza, Manuel Hermenegildo.

Version: 1.5#171 (2000/7/7, 16:10:17 CEST)

Version of last change: 1.5#66 (2000/3/16, 17:3:30 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.

PREDICATE: call/2:

call(Pred,Arg1)

There exists a set of builtin predicates of the form call/N with N > 1 which execute predicate Pred given arguments Arg1 ... ArgX. If Pred has already arguments Arg1 is added to the start, the rest to the end. This predicate, when Pred is a variable, can be written using the special Ciao syntax Pred(Arg1,...,ArgX).


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