From f35008cbd64590b281a240f9f5cec63fddc58bee Mon Sep 17 00:00:00 2001 From: Mark Thom Date: Sun, 3 Mar 2019 17:36:20 -0700 Subject: [PATCH] condense reverse even further --- src/prolog/lib/dif.pl | 3 ++- src/prolog/lib/lists.pl | 10 +++++----- 2 files changed, 7 insertions(+), 6 deletions(-) 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]) :- -- 2.54.0