
+Goal1 ; +Goal2

   Semicolon (OR) operator - Succeeds if the goal Goal1 succeeds or if the
goal Goal2 succeeds.



Arguments
   Goal1               Atom or compound term.
   Goal2               Atom or compound term.

Type
   Control

Description
	Succeeds if either of Goal1 and Goal2 succeeds.

	If Goal1 has the special form A -> B (or A *-> B) then the disjunction
	turns into an if-then-else construct. See those predicates for details.

	!/0 cuts through ;/2.


Modes and Determinism
   ;(+, +) is nondet

Modules
   This predicate is sensitive to its module context (tool predicate, see @/2).

Fail Conditions
   Fails if both Goal1 and Goal2 fail

Resatisfiable
   Resatisfiable if Goal1 does not contain a literal cut

Examples
   
Success:
      1 == 2; 2 == 2.

      [eclipse]: (write(a), fail) ; (write(b); write(c)).
      ab
      yes.

      [eclipse]: (write(a); write(b)), write(c).
      ac
      yes.

Fail:
      1 == 2; 3 == 2.





See Also
   ! / 0, -> / 2, *-> / 2
