Terminology

The following explains the formal terminology we avoid in the course because it was more likely to hinder than help our learning.


Atom

We used things to refer to named constants like apple and orange. These are formally known as atoms. Their names start with a lower-case letter.


Term

All of the data objects - atoms, numbers, variables, compound structures like lists - are terms.


Predicate

We used property to describe something that can be true or false about terms. The more formal terminology is predicate.

We can define our own predicates like fruit/1 and ancestor/2. Prolog provides built-in predicates like =/2 and is/2.


Functor

A functor is the name of a predicate. The word functor is used when discussing syntax, such as arity, affix type, and relative priority over other functors. The word predicate is used when discussing logical and procedural meaning. 

A functor is not to be confused with function.