[ Term Manipulation | The ECLiPSe Built-In Predicates | 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

- meta_bind(-, ?) is det

### 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