Files
scryer-prolog/src/prolog/lib/control.pl
2018-03-02 22:28:12 -07:00

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).