diff --git a/src/prolog/lib/between.pl b/src/prolog/lib/between.pl index 16c73145..a8e06882 100644 --- a/src/prolog/lib/between.pl +++ b/src/prolog/lib/between.pl @@ -6,10 +6,15 @@ :- use_module(library(error)). between(Lower, Upper, X) :- - must_be(integer, Lower), - must_be(integer, Upper), - can_be(integer, X), - between_(Lower, Upper, X). + ( Upper == inf -> + must_be(integer, Lower), + can_be(integer, X), + enumerate_nats(Lower, X) + ; must_be(integer, Lower), + must_be(integer, Upper), + can_be(integer, X), + between_(Lower, Upper, X) + ). between_(Lower, Upper, Lower) :- Lower =< Upper.