next up previous contents
Next: if ... then Up: Side Effect Programming Previous: The cut (!/0)


The predicate ;/2 is defined as an infix operator. It is used to express disjunctive subgoals. For example, member/2 can be rewritten as:







The semantics of ;/2 are roughly equivalent to logical or. Best to avoid its use.

The predicate definition

a:- b ; c.

is better written as:
a:- b.

a:- c.

If you do use this construct then avoid nesting it deeply as this makes code very hard to read and understand.

Paul Brna
Mon May 24 20:14:48 BST 1999