
term_variables_array(?Term, -VarArr)

   Succeeds if VarArr is an array containing all variables in Term.

Arguments
   Term                Prolog term.
   VarArr              Array or variable.

Type
   Term Manipulation

Description

   This predicate collects all the variables inside Term into an array
   VarArr.  Every variable occurs only once in VarArr, even if it occurs
   several times in Term.  The order of the variables in the array
   corresponds to the order in which they are first encountered during
   a depth-first, left-to-right traversal of Term.

   As usual, attributed variables are also considered variables.

   This predicate can handle cyclic terms.



Modes and Determinism
   term_variables_array(?, -) is det

Examples
   
    term_variables(atom, Vs).	      % gives Vs = []
    term_variables(Term, Vs).         % gives Vs = [](Term)
    term_variables(f(a,Y,c), Vs).     % gives Vs = [](Y)
    term_variables(f(X,g(Y),c), Vs).  % gives Vs = [](X,Y)
    term_variables(X+3*Y, Vs).        % gives Vs = [](X,Y)
    term_variables([X,Y,Z], Vs).      % gives Vs = [](X,Y,Z)
    term_variables([](X,Y,Z), Vs).    % gives Vs = [](X,Y,Z)
    term_variables([X,Y,X], Vs).      % gives Vs = [](X,Y)
    term_variables(s(X{a}), Vs).      % gives Vs = [](X{a})


See Also
   term_variables / 2, nonvar / 1, var / 1
