From: Mark Thom Date: Mon, 4 Mar 2019 00:36:20 +0000 (-0700) Subject: condense reverse even further X-Git-Tag: v0.8.110~215 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=f35008cbd64590b281a240f9f5cec63fddc58bee;p=scryer-prolog.git condense reverse even further --- diff --git a/src/prolog/lib/dif.pl b/src/prolog/lib/dif.pl index e830a206..72101b82 100644 --- a/src/prolog/lib/dif.pl +++ b/src/prolog/lib/dif.pl @@ -37,7 +37,8 @@ verify_attributes(Var, Value, Goals) :- % suggestions for improvement. dif(X, Y) :- X \== Y, - ( term_variables(X, XVars), term_variables(Y, YVars), + ( X \= Y -> true + ; term_variables(X, XVars), term_variables(Y, YVars), dif_set_variables(XVars, X, Y), dif_set_variables(YVars, X, Y) ). diff --git a/src/prolog/lib/lists.pl b/src/prolog/lib/lists.pl index 7382a144..b058b2c5 100644 --- a/src/prolog/lib/lists.pl +++ b/src/prolog/lib/lists.pl @@ -42,13 +42,13 @@ 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) - ; reverse(Ys, Xs, [], [], Ys) + ( var(Ys) -> reverse(Xs, Ys, [], Xs) + ; reverse(Ys, Xs, [], Ys) ). -reverse([], [], XsRev, YsRev, YsRev). -reverse([X1|Xs], [Y1|Ys], XsPreludeRev, YsPreludeRev, Xss) :- - reverse(Xs, Ys, [X1|XsPreludeRev], [Y1|YsPreludeRev], Xss). +reverse([], [], YsRev, YsRev). +reverse([X1|Xs], [Y1|Ys], YsPreludeRev, Xss) :- + reverse(Xs, Ys, [Y1|YsPreludeRev], Xss). maplist(_, []). maplist(Cont1, [E1|E1s]) :-