From: Mark Thom Date: Thu, 14 Feb 2019 08:19:11 +0000 (-0700) Subject: fix bug in dif/2 implementation X-Git-Tag: v0.8.110~255 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=8958a563dea9a511ad38a7f2d04f5c1f7f710a49;p=scryer-prolog.git fix bug in dif/2 implementation --- diff --git a/src/prolog/lib/dif.pl b/src/prolog/lib/dif.pl index 4bb44c0d..7d36d0b8 100644 --- a/src/prolog/lib/dif.pl +++ b/src/prolog/lib/dif.pl @@ -35,9 +35,10 @@ verify_attributes(Var, Value, Goals) :- % Probably the world's worst dif/2 implementation. I'm open to % suggestions for improvement. -dif(X, Y) :- ( X \= Y -> true +dif(X, Y) :- X \== Y, + ( X \= Y -> true ; term_variables(X, XVars), term_variables(Y, YVars), - ( XVars == [], YVars == [] -> true + ( XVars == [], YVars == [] -> false ; dif_set_variables(XVars, X, Y), dif_set_variables(YVars, X, Y) )