]> Repositorios git - scryer-prolog.git/commitdiff
tighten reverse/2
authorMark Thom <[email protected]>
Sun, 3 Mar 2019 17:37:34 +0000 (10:37 -0700)
committerMark Thom <[email protected]>
Sun, 3 Mar 2019 17:37:34 +0000 (10:37 -0700)
src/prolog/lib/lists.pl

index e96d677dfc046b88578ff1f37bbf532cf439f5c8..7382a14451cf04a03f55edbe5edf76e16fdf5c1d 100644 (file)
@@ -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) :-