[ Reference Manual | Alphabetic Index ]

# Control

Built-ins and language constructs to control execution

## Predicates

> !
>   Cut - succeeds and removes all choice points between cut and parent goal.
> +Condition *-> +Then ; +Else
>   Soft-cut-conditional construct - succeeds if Then succeeds for some solution of Condition, or if Condition fails and Else succeeds
> +Goal1 , +Goal2
>   Comma (AND) operator - succeeds if the goals Goal1 and Goal2 both succeed
> +Condition -> +Then ; +Else
>   Conditional construct - succeeds if Then succeeds for the first solution of Condition, or if Condition fails and Else succeeds.
> -?-> ?Body
>   The matching operator. The head of the clause which contains it will not be unified with the caller, one-way matching will be used instead.
> +LookupModule : +Goal
>   Call the procedure visible in LookupModule rather than the context module
> +Goal1 ; +Goal2
>   Semicolon (OR) operator - Succeeds if the goal Goal1 succeeds or if the goal Goal2 succeeds.
> Goal @ ContextModule
>   Goal is executed in the calling context of ContextModule.
> \+ +Goal
>   Succeeds if Goal cannot be satisfied. Uses negation as failure (synonym of not/1).
> +Vars ^ +Goal
>   Succeeds if Goal succeeds.
> abort
>   The current computation is aborted and control is returned to the top level.
> call(+Goal)
>   Succeeds if Goal succeeds.
> call(+GoalPrefix, ?Arg, ?...)
>   Call with any number of additional arguments
> catch(+Goal, ?Catcher, +Recovery)
>   Equivalent to call(Goal) if Goal succeeds or fails. If Goal throws an exception that unifies with Catcher, Recovery is executed
> +IterationSpecs do +Goals
>   Execute Goals iteratively according to IterationSpecs.
> fail
>   Does not succeed. A synonym of false/0.
> false
>   Does not succeed (synonym of fail/0).
> fork(+Max, -I)
>   Succeeds for all integers I between 1 and Max. The solutions are generated in parallel.
> not +Goal
>   Succeeds if Goal cannot be satisfied (uses negation as failure).
> once +Goal
>   Succeeds if Goal succeeds, and removes all its alternatives --- equivalent to call((Goal, !))
> phrase(+Grammar, ?List)
>   Succeeds if List unifies with a list from the specified grammar Grammar.
> phrase(+Grammar, ?Tokens, ?Remainder)
>   Succeeds if Tokens can be parsed as part of the grammar defined in Grammar and Remainder contains any remaining terms in Tokens.
> repeat
>   Succeeds as often as tried.
> throw(+Ball)
>   Throw an exception described by Ball. Continue execution at the recovery procedure of a matching ancestor catch/3
> true
>   Succeeds always.
> ~ +Goal
>   The sound negation operator. If Goal is not ground, the predicate delays.

Generated from control.eci on 2022-09-03 14:26