polish freeze.pl and dif.pl
This commit is contained in:
@@ -1,7 +1,6 @@
|
|||||||
:- module(dif, [dif/2]).
|
:- module(dif, [dif/2]).
|
||||||
|
|
||||||
:- use_module(library(atts)).
|
:- use_module(library(atts)).
|
||||||
:- use_module(library(control), [(\=)/2]).
|
|
||||||
|
|
||||||
:- attribute dif/2.
|
:- attribute dif/2.
|
||||||
|
|
||||||
|
|||||||
@@ -21,13 +21,13 @@ freeze(X, Goal) :-
|
|||||||
put_atts(Fresh, frozen(Goal)),
|
put_atts(Fresh, frozen(Goal)),
|
||||||
Fresh = X.
|
Fresh = X.
|
||||||
|
|
||||||
gather_freeze_goals(Attrs, _) :-
|
gather_freeze_goals(Attrs, _, _) :-
|
||||||
var(Attrs), !.
|
var(Attrs), !.
|
||||||
gather_freeze_goals([frozen(X) | Attrs], [frozen(X) | Goals]) :-
|
gather_freeze_goals([frozen(X) | Attrs], Var, [frozen(Var, X) | Goals]) :-
|
||||||
gather_freeze_goals(Attrs, Goals).
|
gather_freeze_goals(Attrs, Var, Goals).
|
||||||
gather_freeze_goals([_ | Attrs], Goals) :-
|
gather_freeze_goals([_ | Attrs], Var, Goals) :-
|
||||||
gather_freeze_goals(Attrs, Goals).
|
gather_freeze_goals(Attrs, Var, Goals).
|
||||||
|
|
||||||
attribute_goals(X, Goals) :-
|
attribute_goals(X, Goals) :-
|
||||||
'$get_attr_list'(X, Attrs),
|
'$get_attr_list'(X, Attrs),
|
||||||
gather_freeze_goals(Attrs, Goals).
|
gather_freeze_goals(Attrs, X, Goals).
|
||||||
|
|||||||
Reference in New Issue
Block a user