From: Mark Thom Date: Wed, 24 Apr 2019 02:27:47 +0000 (-0600) Subject: address issues #111 and #108 X-Git-Tag: v0.8.110~88 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=01e57f83ee63cdb430cfc4dacdda474688462f82;p=scryer-prolog.git address issues #111 and #108 --- diff --git a/src/prolog/lib/between.pl b/src/prolog/lib/between.pl index 6def3ce7..38d058c8 100644 --- a/src/prolog/lib/between.pl +++ b/src/prolog/lib/between.pl @@ -8,6 +8,7 @@ between(Lower, Upper, X) :- must_be(integer, Lower), must_be(integer, Upper), + can_be(integer, X). between_(Lower, Upper, X). between_(Lower, Upper, Lower) :- @@ -15,7 +16,7 @@ between_(Lower, Upper, Lower) :- between_(Lower1, Upper, X) :- Lower1 < Upper, Lower2 is Lower1 + 1, - between(Lower2, Upper, X). + between_(Lower2, Upper, X). enumerate_nats(I, I). enumerate_nats(I0, N) :- diff --git a/src/prolog/lib/lists.pl b/src/prolog/lib/lists.pl index b058b2c5..0e4ae7a3 100644 --- a/src/prolog/lib/lists.pl +++ b/src/prolog/lib/lists.pl @@ -42,7 +42,7 @@ append([X|L], R, [X|S]) :- append(L, R, S). memberchk(X, Xs) :- member(X, Xs), !. reverse(Xs, Ys) :- - ( var(Ys) -> reverse(Xs, Ys, [], Xs) + ( nonvar(Xs) -> reverse(Xs, Ys, [], Xs) ; reverse(Ys, Xs, [], Ys) ).