From 3fc0a230faf1758a70091f4c406ee660ccbcc696 Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Sun, 3 Mar 2019 10:37:34 -0700 Subject: [PATCH] tighten reverse/2 --- src/prolog/lib/lists.pl | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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) :- -- 2.54.0