Case analysis for the
Bool type.
bool x y p
evaluates to
x when
p is
False, and evaluates
to
y when
p is
True.
This is equivalent to
if p then y else x; that is, one can
think of it as an if-then-else construct with its arguments reordered.
Examples
Basic usage:
>>> bool "foo" "bar" True
"bar"
>>> bool "foo" "bar" False
"foo"
Confirm that
bool x y p and
if p then y else
x are equivalent:
>>> let p = True; x = "bar"; y = "foo"
>>> bool x y p == if p then y else x
True
>>> let p = False
>>> bool x y p == if p then y else x
True