compress the definition of freeze:attribute_goals//1
This commit is contained in:
@@ -21,16 +21,6 @@ freeze(X, Goal) :-
|
|||||||
put_atts(Fresh, frozen(Goal)),
|
put_atts(Fresh, frozen(Goal)),
|
||||||
Fresh = X.
|
Fresh = X.
|
||||||
|
|
||||||
gather_freeze_goals(Attrs, _) -->
|
attribute_goals(Var) -->
|
||||||
{ var(Attrs) },
|
{ get_atts(Var, frozen(Goals)) },
|
||||||
!.
|
[freeze(Var, Goals)].
|
||||||
gather_freeze_goals([frozen(X) | _], Var) -->
|
|
||||||
[freeze(Var, X)],
|
|
||||||
{ put_atts(Var, -frozen(_)) },
|
|
||||||
!.
|
|
||||||
gather_freeze_goals([_ | Attrs], Var) -->
|
|
||||||
gather_freeze_goals(Attrs, Var).
|
|
||||||
|
|
||||||
attribute_goals(X) -->
|
|
||||||
{ '$get_attr_list'(X, Attrs) },
|
|
||||||
gather_freeze_goals(Attrs, X).
|
|
||||||
|
|||||||
@@ -63,7 +63,7 @@ call_query_var_goals([AttrVar|AttrVars], Module, Goals) :-
|
|||||||
|
|
||||||
call_attr_var_goals([], _, []).
|
call_attr_var_goals([], _, []).
|
||||||
call_attr_var_goals([AttrVar|AttrVars], Module, Goals) :-
|
call_attr_var_goals([AttrVar|AttrVars], Module, Goals) :-
|
||||||
( catch(Module:attribute_goals(AttrVar, Goals, RGoals),
|
( catch(Module:attribute_goals(AttrVar, Goals, RGoals),
|
||||||
E,
|
E,
|
||||||
'$print_attribute_goals_exception'(Module, E)
|
'$print_attribute_goals_exception'(Module, E)
|
||||||
)
|
)
|
||||||
|
|||||||
Reference in New Issue
Block a user