Section "control"

The Dogelog player provides already correct handling of a conjunction and disjunction of goals in a Prolog clause body or in a Prolog query. This also extends to the cut. The conjunction and disjunction do not have a direct built-in since they are translated into internals. In particular the cut is mapped to '$CUT'/1 with an additional argument.

Example:

?- (X=1;X=2), !.
X = 1.

The following control built-ins are provided:

true: [ISO 7.8.1]
The predicate succeeds.
A; B: [ISO 7.8.6]
The predicate succeeds whenever A or B succeed.
A -> B: [ISO 7.8.7]
The predicate succeeds when A succeeds and then whenever B succeed.
A, B: [ISO 7.8.5]
The predicate succeeds whenever A and B succeed.
!: [ISO 7.8.4]
The predicate removes choice points created in the current clause.
fail: [ISO 7.8.2]
The built-in fails.