once/1

once( 0:G)* is iso

Execute the goal G only once. The predicate is defined by:


 once(G) :- call(G), !.

Note that cuts inside once//11 can only cut the other goals inside once//11.