Conditional expressions

A conditional expression has the form if c then t else f, where c is an expression of type Boolean, and t and f are expressions of any type, but t and f must have the same type.

Evaluation of conditional expressions is non-strict. The evaluation semantics of if c then t else f are:

  • The condition c is always evaluated.
  • If c evaluates to true, the expression t is evaluated and f remains unevaluated. The whole expression reduces to the value of t.
  • If c evaluates to false, the expression f is evaluated and t remains unevaluated. The whole expression reduces to the value of f.

The keywords if, then, and else each introduce a block as follows:

if
    true
  then
    "codeblock here"
  else
    "another codeblock"