IF Computer > MINERVA > Manual > Reference > Predicates > Logic and control > repeat/0

repeat/0

MINERVA
ifcomputer logo
f
Expert Services on the Web

succeeds always.

repeat

repeat/0 succeeds repeatedly and indefinitely. The difference to true/0 is that it can be backtracked.

Loops which are defined with repeat/0 should be finished with a Cut ('!'/0), because otherwise the loop can be repeated.
If a predicate, called after repeat/0, always fails, you can have an indefinite loop. If repeat/0 follows after a conjunction (','/2) the part left of it won't be backtraced any more.

Examples

repeat, write('indefinitely'), nl, fail. Writes indefinitely 'indefinitely' to the current outputstream.
repeat,!. Succeeds.
repeat,!,fail. 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)/2, ';'(if-then-else)/2, '\+'(not provable)/1, once/1, throw/1.

document: http://www.ifcomputer.co.jp/MINERVA/Manual/Reference/Predicates/logic_and_control/repeat/print_de.html
published 2008/10/13 update 2001/2/7 (c) 1996-2006 IF Computer Japan
IF Computer 5-28-2 Sendagi, Bunkyo-ku Tel +81-3-5814-3352 start (AT) ifcomputer.com
Customer Support Tokyo 113-0022 Japan   http://www.ifcomputer.com
Back> managed with ubiCMS