A functor is written just in front of the opening round bracket. Each component could be a structure. This forms a more complicated structure. The list elements are separated by commas, and the entire list is delimited by square brackets. The following examples show examples of lists.
Structures are simply objects within multiple components that are built in procedures.
So the concept of input and output modes makes the language not satisfy the ideas of pure logic programming. Instead it enables the language to express the interprocess communication constraints in a very nice way and to obtain a language that conceptually clean and easy to implement efficiently. This helps to cut down on run time and backtracking. This leads to the idea of indeterminism in which only one out of a number of candidate clauses is selected. Because there is no backtracking, something than just unifying with the head is required to select a clause, so the clause syntax is extended to allow guards on each clause.