From dfd7ac633acf72c9d2c9912e1a96e99ac1699678 Mon Sep 17 00:00:00 2001 From: notoria Date: Sat, 30 Jan 2021 17:45:55 +0100 Subject: [PATCH] Removed redundant choicepoint from between/3 --- src/lib/between.pl | 16 +++++++++------- 1 file changed, 9 insertions(+), 7 deletions(-) diff --git a/src/lib/between.pl b/src/lib/between.pl index 4ce92db7..5a0d5bab 100644 --- a/src/lib/between.pl +++ b/src/lib/between.pl @@ -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) :- -- 2.54.0