sitelogo
->(If-then)/2

causes that one goal implicates another goal.

+IfGoal -> +ThenGoal
->(+IfGoal, +ThenGoal)

If IfGoal succeeds then ThenGoal will be executed.
If IfGoal fails ThenGoal will not be executed.
'->'/2 succeeds if IfGoal and ThenGoal both succeed.

There are two significant differences to ','/2:

'->'/2 is a predefined infix-operator with priority 1050 which is right-associative (see also current_op/3).

Arguments

IfGoal                 goal
ThenGoal               goal

Examples

There exists a database with clauses:
     colour(blue). colour(yellow).

colour(X) -> write(X). Succeeds once with substitution X <- blue
and outputs 'blue' to the current outputstream.
colour(X) -> X = yellow. Fails.

Standard

This predicate is part of the ISO-Prolog Standard.

See also

abort/0, break/0, call/1, fcall/1, catch/3, ','(conjunction)/2, '!'(cut)/0, ';'(disjunction)/2, fail/0, true/0, halt/0/1, ';'(if-then-else)/2, '\+'(not provable)/1, once/1, repeat/0, throw/1.


Darueber read on...
scroll to top managed with ubiCMS