ゴールを一度だけ成功させる。...
移動
次へ 前へ
上へ 最上
参考
abort/0
::(Apply)/2
break
call/1
fcall/1
catch/3
','(Conjunction)/2
!(Cut)/0
';'(Disjunction)/2
<-(Eval)/2
fail/0
halt/0/1
->(If-then)/2
';'(If-then-else)/2
'\+'/1
once/1
repeat/0
throw/1
true/0
イフコンピュータ > MINERVA > マニュアル > レファレンス > 述語 > 論理と制御 > !(Cut)/0

!(Cut)/0

ゴールを一度だけ成功させる。

!/0

!/0 (Cut) は、一度だけ成功する。探索木の未探査枝は刈り取られる。 もし、Cut がゴールの一部なら、 そのゴールの全選択点は除かれる。全バインディングは固定される。
もし、Cut が、右側(たいてい、本体の最初)にあると、完全なゴールは一度だけ成功する。
Cut の使用は、repeat/0 でのループを作る時にも重要である。なぜなら、!/0 は、ループを抜けた後、このループは バックトラックによって、再訪されない。
!/0 を使うと、プログラムは理解しにくくなる。よって、Cut はできるだけ使うべきではない。

データベースには、以下のようになっているものとする。: 
     colour(blue).
     colour(red).
     colour(yellow).
     clothing(blouse).
     clothing(trousers).
     clothing(socks).

colour(X),!. X <- blue の代入で一度だけ成功。
clothing(X),!,colour(Y). 以下の代入で 3度成功。
X <- blouse, Y <- blue.
X <- blouse, Y <- red.
X <- blouse, Y <- yellow.

標準

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

関連

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

続く..
MINERVA
ifcomputer logo
f
Expert Services on the Web
言語
English
Japanese
サーバー
USA
Japan
サイトマップ
索引
目次
全体目次
全体索引
印刷向き
imode
PDA
探索
document: http://www.ifcomputer.co.jp/MINERVA/Manual/Reference/Predicates/logic_and_control/cut/home_jp.html
published 2008/5/19 update 2001/2/7 (c) 1996-2006 IF Computer Japan
IF Computer 〒113-0022 Tel 03-5814-3352 ifcj@ifcomputer.co.jp
Customer Support 東京都文京区千駄木5-28-2   http://www.ifcomputer.co.jp
冒頭へ managed with ubiCMS