A Compound Term is a functor with a (fixed) number of arguments each of which may be a Prolog term.
This means that we can arbitrarily nest compound terms. For some examples:
principal functor = happy
1st argument = a constant (atom)
principal functor = sum
1st argument = constant (integer)
2nd argument = variable
principal functor = not
1st argument = compound term
Nesting compound terms may be of use to the programmer. For example, the clause
fact(fred,10000).is not as informative as
fact(name(fred),salary(10000)).which can be thought of as defining a PASCAL-type record structure.