As we have seen, the goals in the body of a sentence are linked by the operator `,', which can be interpreted as conjunction (and). The Prolog language provides a number of other operators, known as control structures, for building complex goals. Apart from being built-in predicates, these control structures play a special role in certain language features, namely Grammar Rules (see ref-gru), and when code is loaded or asserted in the context of modules (see ref-mod). The set of control structures is described in this section, and consists of:
,
:Q ISO;
:Q ISO:
:P ISO->
:Q;
:R ISO->
:Q ISO!
ISO\+
:P ISO ^
:Psetof/3
and bagof/3
)
do
:Bodyif(
:P,
:Q,
:R)
once(
:P)
ISO