4.2.8 Summary of Control Predicates

:P,:Q ISO
prove P and Q
:P;:Q ISO
prove P or Q
+M::P ISO
call P in module M
:P->:Q;:R ISO
if P succeeds, prove Q; if not, prove R
:P->:Q ISO
if P succeeds, prove Q; if not, fail
! ISO
cut any choices taken in the current procedure
\+ :P ISO
goal P is not provable
?X ^ :P
there exists an X such that P is provable (used in setof/3 and bagof/3)
block :P declaration
declaration that predicates specified by P should block until sufficiently instantiated
call(:P) ISO
call(:P,...)
execute P or P(...)
call_cleanup(:Goal,:Cleanup)
Executes the procedure call Goal. When Goal succeeds determinately, is cut, fails, or raises an exception, Cleanup is executed.
call_residue_vars(:Goal,?Vars)
Executes the procedure call Goal. Vars is unified with the list of new variables created during the call that remain unbound and have blocked goals or attributes attached to them.
fail ISO
fail (start backtracking)
false
same as fail
freeze(+Var,:Goal)
Blocks Goal until nonvar(Var) holds.
if(:P,:Q,:R)
for each solution of P that succeeds, prove Q; if none, prove R
once(:P) ISO
Find the first solution, if any, of goal P.
otherwise
same as true
repeat ISO
succeed repeatedly on backtracking
true ISO
succeed
when(+Cond,:Goal)
block Goal until Cond holds


Send feedback on this subject.