?Name, ?Arity)True when Term is a term with functor Name/Arity.
Term is a variable it is unified with a new term whose
arguments are all different variables (such a term is called a
skeleton). If Term is atomic, Arity will be
unified with the integer 0, and Name will be unified with Term.
instantiation_error() if Term is unbound
and Name/Arity is insufficiently instantiated.
SWI-Prolog also supports terms with arity 0, as in
section 5). Such terms
must be processed using
The predicate functor/3
=../2 raise a
when faced with these terms. Without this precaution a round trip
of a term with arity 0 over functor/3
would create an atom.