The built-in predicate functor/3
:
The built-in predicate arg/3
unifies a term with a specified argument of another term.
The built-in predicate Term =..
List
unifies List with a list whose head is the atom corresponding
to the principal functor of Term and whose tail is a list of
the arguments of Term.