If P then Q else R, using first solution of P only.
| can be used as an alternative to
giving the form:
P -> Q | R
| is transformed into a
; when the goal is read.
First P is executed. If it succeeds, then Q is executed, and if Q fails, the whole conditional goal fails. If P fails, however, R is executed instead of Q.
The operator precedences of the
both greater than 1000, so that they dominate commas.
If P succeeds and Q
then fails, backtracking into P does not occur. P may
not contain a cut.
-> acts like a cut except that its range
is restricted to within the disjunction: it cuts away R and any
choice points within P.
-> may be thought of as a