[ Term Manipulation | The ECLiPSe Built-In Predicates | Reference Manual | Alphabetic Index ]
term_variables(?Term, ?VarList)
Succeeds if VarList is the list of all variables in Term.
- ?Term
- Prolog term.
- ?VarList
- List or variable.
Description
This predicate collects all the variables inside Term into the list
VarList. Every variable occurs only once in VarList, even if it occurs
several times in Term. The order of the variables in the list is not
specified. As usual, metaterms are also considered variables.
Fail Conditions
None.
Resatisfiable
No.
Exceptions
- (5) type error
- VarList instantiated but not to a list.
Examples
Success:
term_variables(atom, []).
term_variables(Term, L). % gives L = [Term]
term_variables(f(a,B,c), L). % gives L = [B]
term_variables([X,Y,Z], L). % gives L = [Z,Y,X]
term_variables([X,Y,X], L). % gives L = [Y,X]
term_variables(s(X{a}), L). % gives L = [X{a}]
Fail:
term_variables(f(a,B,c), []).
See Also
nonground / 1, nonground / 2, nonground / 3, nonvar / 1, var / 1