From: Mark Thom Date: Sun, 3 Mar 2019 17:37:34 +0000 (-0700) Subject: tighten reverse/2 X-Git-Tag: v0.8.110~216 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=3fc0a230faf1758a70091f4c406ee660ccbcc696;p=scryer-prolog.git tighten reverse/2 --- diff --git a/src/prolog/lib/lists.pl b/src/prolog/lib/lists.pl index e96d677d..7382a144 100644 --- a/src/prolog/lib/lists.pl +++ b/src/prolog/lib/lists.pl @@ -41,7 +41,10 @@ append([X|L], R, [X|S]) :- append(L, R, S). memberchk(X, Xs) :- member(X, Xs), !. -reverse(Xs, Ys) :- reverse(Xs, Ys, [], [], Xs). +reverse(Xs, Ys) :- + ( var(Ys) -> reverse(Xs, Ys, [], [], Xs) + ; reverse(Ys, Xs, [], [], Ys) + ). reverse([], [], XsRev, YsRev, YsRev). reverse([X1|Xs], [Y1|Ys], XsPreludeRev, YsPreludeRev, Xss) :-