[ Comparing and Sorting | The ECLiPSe Built-In Predicates | Reference Manual | Alphabetic Index ]
instance(?Instance, ?Term)
Succeeds if Instance is an instance of Term.
- ?Instance
- An arbitrary term.
- ?Term
- An arbitrary term.
Description
Succeeds if it is possible to find an instantiation of free variables in
Term such that Term and Instance are equal. The result is undefined if
Term and Instance share variables. Note that no unification actually
occurs.
Fail Conditions
Fails if Instance is not an instance of Term.
Resatisfiable
No
Examples
Success:
instance(atom,X).
instance(f(a,b),X).
instance(f(a,b),f(X,Y)).
instance(f(a,X),f(Y,X)).
instance(f(a,X),f(X,Y)).
instance(f(X,Y),f(Y,X)).
instance([a,b,c],[A,B,C]).
instance([a,f(1,b,X),Y|Z],T).
instance(f(X),X). % with occur_check off
Fail:
instance(f(a,b),f(X,X)).
instance(X,a).
instance(f(X),X). % with occur_check on
See Also
compare_instances / 3, prune_instances / 2, variant / 2