causes the goal to succeed only once....
Move to
Next Prev
Up Top
See also
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
IF Computer > MINERVA > Manual > Reference > Predicates > Logic and control > !(Cut)/0

!(Cut)/0

causes the goal to succeed only once.

!/0

!/0 (Cut) succeeds exactly once. Unexplored branches of the search-tree get cutted. If Cut is part of a goal then all choicepoints of that goal are removed. That means that all bindings are fixed.
If Cut is set on the right place (mostly at the beginning of the body) then the complete goal can succeed only once.
The use of Cut is also important when building loops with repeat/0 because !/0 prevents that after leaving a loop this loop will be revisited by backtracing.
Using !/0 makes programs difficult to read. Therefore Cuts should be used as rarely as possible.

Examples

Assume that the database contains: 
     colour(blue).
     colour(red).
     colour(yellow).
     clothing(blouse).
     clothing(trousers).
     clothing(socks).

colour(X),!. Succeeds once with substitution X <- blue.
clothing(X),!,colour(Y). Succeeds three times with substitution
X <- blouse, Y <- blue.
X <- blouse, Y <- red.
X <- blouse, Y <- yellow.

Standard

This predicate is part of the ISO-Prolog Standard.

See also

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.

read on...
MINERVA
ifcomputer logo
f
Expert Services on the Web
Language
English
Japanese
Server
USA
Japan
Site Access
Local Index
Local Contents
Site Contents
Site Index
Printer Friendly
For imode
For PDA
Search
document: http://www.ifcomputer.co.jp/MINERVA/Manual/Reference/Predicates/logic_and_control/cut/home_en.html
published 2008/5/19 update 2001/2/7 (c) 1996-2006 IF Computer Japan
IF Computer 5-28-2 Sendagi, Bunkyo-ku Tel +81-3-5814-3352 info@ifcomputer.com
Customer Support Tokyo 113-0022 Japan   http://www.ifcomputer.com
scroll to top managed with ubiCMS