18 lines
348 B
Prolog
18 lines
348 B
Prolog
:- module(control, [(\=)/2, between/3, call_cleanup/2, once/1]).
|
|
|
|
:- op(700, xfx, \=).
|
|
|
|
once(G) :- G, !.
|
|
|
|
X \= X :- !, false.
|
|
_ \= _.
|
|
|
|
call_cleanup(G, C) :- setup_call_cleanup(true, G, C).
|
|
|
|
between(Lower, Upper, Lower) :-
|
|
Lower =< Upper.
|
|
between(Lower1, Upper, X) :-
|
|
Lower1 < Upper,
|
|
Lower2 is Lower1 + 1,
|
|
between(Lower2, Upper, X).
|