Removed redundant choicepoint from between/3

This commit is contained in:
notoria
2021-01-30 17:45:55 +01:00
parent 70aa4934c5
commit dfd7ac633a

View File

@@ -12,15 +12,17 @@ between(Lower, Upper, X) :-
( nonvar(X) ->
Lower =< X,
X =< Upper
; between_(Lower, Upper, X)
; compare(Ord, Lower, Upper),
between_(Ord, Lower, Upper, X)
).
between_(Lower, Upper, Lower) :-
Lower =< Upper.
between_(Lower1, Upper, X) :-
Lower1 < Upper,
Lower2 is Lower1 + 1,
between_(Lower2, Upper, X).
between_(<, Lower0, Upper, X) :-
( X = Lower0
; Lower1 is Lower0 + 1,
compare(Ord, Lower1, Upper),
between_(Ord, Lower1, Upper, X)
).
between_(=, Upper, Upper, Upper).
enumerate_nats(I, I).
enumerate_nats(I0, N) :-