From: Mark Thom Date: Tue, 11 Jan 2022 01:34:25 +0000 (-0700) Subject: improve between_/3 implementation (#1186, #1191) X-Git-Tag: v0.9.0^2~80 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=e3622e0860cfcaa8440b1d8224d5f878b9577f31;p=scryer-prolog.git improve between_/3 implementation (#1186, #1191) --- diff --git a/src/lib/between.pl b/src/lib/between.pl index 3e023c8c..2711e8e8 100644 --- a/src/lib/between.pl +++ b/src/lib/between.pl @@ -16,14 +16,14 @@ between(Lower, Upper, X) :- between_(Lower, Upper, X) ). -between_(Lower, Lower, Lower) :- !. between_(Lower, Upper, Lower1) :- - ( Lower < Upper, - ( Lower1 = Lower - ; Lower0 is Lower + 1, - between_(Lower0, Upper, Lower1) - ) - ). + Lower < Upper, + !, + ( Lower1 = Lower + ; Lower0 is Lower + 1, + between_(Lower0, Upper, Lower1) + ). +between_(Lower, Lower, Lower). enumerate_nats(I, I). enumerate_nats(I0, N) :-