S: Statement -> Environment -> Environment
Darauf basierend wird die Definition einer Bedingung so gestaltet :
S[['if' E 'then' L1 'else' L2 'fi']](Env) = cond(E[[E]](Env);L[[L1]](Env);L[[L2]](Env))
Hierbei ist cond folgendermaßen definiert :
cond | (e,s1,s2)(Env) | = |
s1(Env) | für e(Env) > 0 | |
s2(Env) | für e(Env) <= 0 | |
undef | sonst |
Der hier zuletzt aufgeführte Zweig wird nur dann notwendig, wenn _ ein mögliches Ergebnis von E[[E]] ist. Ist das nicht der Fall, kommt dieser Zweig nie zur Ausführung.