ブール式 cond-1 を評価し、true ならばコード body-1 のブロックを実行します。cond-1 が false の場合は cond-2 が評価され (存在する場合)、true の場合は body-2 が実行されます。これは、elseif 条件の 1 つが true であると分かるまで、各条件に対して順番に繰り返されます。どの条件も true でない場合は、else-body が実行されます。
else と elseif 句はオプションです。elseif 句はいくつでも指定できますが、else は 1 つだけ最後に指定しなければなりません。本体は空であってもかまいません。
if 式が
else 句を含み、どの句の本体も値を生成するか、戻らない文 (例えば、
throw または
error、あるいは
never-returns を返すように宣言されている proc) で終わっている場合は、
if 式が、実行される分岐の本体の値を生成します。この場合は、代入式の右辺や関数への引数として値が要求される場所で
if 式を使用することができます。