In the structure `complex(a,b)`

, `complex`

is called the *functor*. Normally, structures are written in prefix notation, with the
functor before its arguments.

Prolog allows us to declare that a given functor can be written between
two arguments (infix), after an argument (postfix), or before an
argument (prefix). Doing this avoids the need for brackets. Such
functors are called *operators*. Operators can
be given different precedences and associativities.

Some functors, such as `+`

, `*`

, `is`

, and `\=`

, are
already defined as operators by the system. This is why we can write
`C is A+B`

instead of `is(C,+(A,B))`

. However, the bracketed
form is also allowed.

Note: These operators are atoms. As well as sequences of letters, atoms
can be sequences of ``symbol characters''. Examples: `+`

,
`++`

, `-->`

.

Mon Jul 17 22:27:41 BST 1995