Allow the control of whether to execute instructions or not according to a computation. Every conditional branch defines its hierarchy level, from the local variables' point of view.
(if [BOOL]
[INSTRUCTION]
)
Executes [INSTRUCTION]
if, and only if, [BOOL]
yields true.
(if_else [BOOL]
[IF_TRUE = INSTRUCTION]
[IF_FALSE = INSTRUCTION]
)
Executes [IF_TRUE]
if [BOOL]
yields true, but [IF_FALSE]
if it does not.
(cond
([C0 = BOOL] [I0 = INSTRUCTION])
...
([CN = BOOL] [IN = INSTRUCTION])
)
Executes [II]
, such that [CI]
is the first listed boolean to yield true.
(switch [T = COMPUTATION]
([C0 = COMPUTATION] [I0 = INSTRUCTION])
...
([CN = COMPUTATION] [IN = INSTRUCTION])
[DEFAULT = INSTRUCTION]
)
Executes [II]
, such that [CI]
is the first listed computation to be equal
to [T]
. Executes [DEFAULT]
if there is no such [CI]
.