';'(Disjunction)/2

2つのゴールのうち、一つを実行する。

+ゴール1;+ゴール2
;(+ゴール1,+ゴール2)

';'/2 は、ゴール1 ゴール2 が成功すれば、成功する。 もし、ゴール1 が成功すれば、ゴール2 は実行されない。ゴール2 は、ゴール1 が失敗した時のみ、実行される。
バックトラックによって、ゴール1 ゴール2 も一つ以上の解を持つことができる。最初に ゴール1 がバックトラックされる。ゴール1の全解がでてから、ゴール2 はバックトラックされる。
';'/2 は、優先順位クラス 1100、右結合性の、組み込み挿入演算子である。 (関連 current_op/3).

引数

ゴール1                  ゴール
ゴール2                  ゴール

;(integer(2.2), integer(3)). 成功.
write(goal1),write(' and goal2'). 成功して、'goal1'を出力する。

標準

この述語は、ISO-Prolog標準に含まれる。

関連

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


戻る 続く..