polish freeze.pl and dif.pl

This commit is contained in:
Mark Thom
2019-02-15 21:04:20 -07:00
parent 818eeb6c57
commit 10d5c00f4b
2 changed files with 6 additions and 7 deletions

View File

@@ -1,7 +1,6 @@
:- module(dif, [dif/2]).
:- use_module(library(atts)).
:- use_module(library(control), [(\=)/2]).
:- attribute dif/2.

View File

@@ -21,13 +21,13 @@ freeze(X, Goal) :-
put_atts(Fresh, frozen(Goal)),
Fresh = X.
gather_freeze_goals(Attrs, _) :-
gather_freeze_goals(Attrs, _, _) :-
var(Attrs), !.
gather_freeze_goals([frozen(X) | Attrs], [frozen(X) | Goals]) :-
gather_freeze_goals(Attrs, Goals).
gather_freeze_goals([_ | Attrs], Goals) :-
gather_freeze_goals(Attrs, Goals).
gather_freeze_goals([frozen(X) | Attrs], Var, [frozen(Var, X) | Goals]) :-
gather_freeze_goals(Attrs, Var, Goals).
gather_freeze_goals([_ | Attrs], Var, Goals) :-
gather_freeze_goals(Attrs, Var, Goals).
attribute_goals(X, Goals) :-
'$get_attr_list'(X, Attrs),
gather_freeze_goals(Attrs, Goals).
gather_freeze_goals(Attrs, X, Goals).