!TITLE Use Of Meta-Predicates !KEY This example illustrates the use of the meta-predicates var and =... The procedure call variables(Term,L,[]) instantiates variable L to a list of all the variable occurrences in the term Term. e.g. variables(d(U*V,X,DU*V+U*DV), [U,V,X,DU,V,U,DV], []). | variables(X,[X|L],L) :- var(X),!. | variables(T,L0,L) :- T =.. [F|A], variables1(A,L0,L). | | variables1([T|A],L0,L) :- variables(T,L0,L1), variables1(A,L1,L). | variables1([],L,L).