From: Mark Thom Date: Fri, 21 Sep 2018 13:29:07 +0000 (-0300) Subject: tighten up numbervars X-Git-Tag: v0.8.110~370 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=109a0ee74d9dc088a12fab76c009d7ad59ad24d4;p=scryer-prolog.git tighten up numbervars --- diff --git a/src/prolog/lib/numbervars.pl b/src/prolog/lib/numbervars.pl index 84a1431d..7d81e89f 100644 --- a/src/prolog/lib/numbervars.pl +++ b/src/prolog/lib/numbervars.pl @@ -14,7 +14,7 @@ numbervars(Term, NewTerm, N1, N2) :- compound(Term), !, Term =.. [Name | Args], NewTerm =.. [Name | NewArgs], fold_numbervars(Args, NewArgs, N1, N2). -numbervars(_, _, _, _). +numbervars(_, _, N, N). marked_already(Term, NewTerm) :- var(Term), nonvar(NewTerm), NewTerm = '$VAR'(_). @@ -23,9 +23,7 @@ marked_already(Term, NewTerm) :- fold_numbervars([HeadTerm | Terms], [NewHeadTerm | NewTerms], N1, Nn) :- ( marked_already(HeadTerm, NewHeadTerm) -> N1 = N2 - ; numbervars(HeadTerm, NewHeadTerm, N1, N2), - ( var(N2) -> N1 = N2 - ; true ) + ; numbervars(HeadTerm, NewHeadTerm, N1, N2) ), fold_numbervars(Terms, NewTerms, N2, Nn). fold_numbervars([], [], _, _).