| 一つのゴールともう一つのゴールを関係付けさせる。
+Ifゴール -> +Thenゴール
->(+Ifゴール, +Thenゴール)
もし、Ifゴールが成功すれば、Thenゴールは実行される。
もし、Ifゴールが失敗すれば、Thenゴール は実行されない。
もし、Ifゴール とThenゴール が両方とも成功すれば、'->'/2 も成功する。
','/2とは2つの重要な違いがある。:
- Thenゴール だけが、バックトラックされる。Ifゴールは一度だけ成功する。
- もし、Ifゴール がサブゴールと、カット ('!'/0)も持っていても、このカット は、Ifゴールの外に何の影響も与えない。
'->'/2 は、右結合性で優先順位クラス1500の組み込み挿入演算子である。(see also current_op/3).
引数
Ifゴール ゴール
Thenゴール ゴール
例
以下の節を持ったデータベースがあるとする。:
colour(blue). colour(yellow).
| colour(X) -> write(X). |
X <- blue で一度だけ代入成功。
で、現在出力ストリームに'blue'を出力する。
|
| colour(X) -> X = yellow. |
失敗. |
標準
この述語は、ISO-Prolog標準に含まれる。
関連
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.
|