[ Term Manipulation | Reference Manual | Alphabetic Index ]
meta_bind(-Meta, ?Term)
The attributed variable Meta is bound to the term Term without triggering the
metaterm-unification event.
- Meta
- An attributed variable.
- Term
- Prolog term.
Description
   The attributed variable Meta is treated like a standard variable and bound to
   Term.  The difference compared to using normal unification is that meta_bind/2
   does not raise the meta-unification event, as is normally the case
   whenever a attributed variable is bound.  An example of its use is in the handler
   for the meta-unification event itself, e.g. when the attributed variable is to be
   bound to a new one with a different attribute.
Modes and Determinism
Exceptions
- (4) instantiation fault 
- Meta is a free variable.
- (5) type error 
- Meta is instantiated.
Examples
    [eclipse 2]: meta_bind(X{a}, 3).
    X = 3
    yes.
    [eclipse 5]: [user].
     change_attribute(X{_Old}, New) ?- meta_bind(X, _{New}).
    yes.
    [eclipse 6]: change_attribute(X{a}, b), printf("%Mw", [X]).
    X{b}
Error:
    meta_bind(_, a).                    (Error 4).
    meta_bind(a, a).                    (Error 5).
See Also
meta / 1