next up previous index
Next: Attribute Modification Up: Attributed Variables Previous: Creating Attributed Variables   Index

Decomposing Attributed Variables

The attributes of an attributed variable can be accessed using one-way unification in a matching clause, e.g.
    get_attribute(X{Name:Attribute}, A) :-
        -?->
        A = Attribute.
This clause succeeds only when the first argument is an attributed variable, and it binds X to the whole attributed variable and A to the attribute with name Name. Note that a normal (unification) clause can not be used to decompose an attributed variable (it would create a new attributed variable and unify this with the caller argument, but the unification is handled by an attributed variable handler, see Section 16.7).



Warwick Harvey
2004-08-07