term_variables(+Term, -Variables) since release 4.3
True if Variables is the list of variables occurring in Term,
without duplicates, in first occurrence order.
Any term, a cyclic term is also accepted.
The variables in the term. Must be a variable or a list.
Variables is not a variable or a list.
| ?- term_variables(f(A, B, A), Vs). Vs = [A,B] ? yes | ?- term_variables(f(a, b, a), Vs). Vs =  ? yes | ?- T=[A,B|T], term_variables(f(C,T), Vs). T = [A,B,A,B,A,B,A,B,A,B|...], Vs = [C,A,B] ? yes