条件式を評価し、続く節を上から順に探索して、評価値と一致するものが値のリストに含まれる節を探し出し、その節の式または処理を順に評価し、最後の評価値を返す。
値同士の比較に equal 関数を使うのが case、eq 関数を使うのが caseq であり、どちらも使い方の形式は同じである。
(case 条件式
((値1a 値1b 値1c …)
式(または処理)
式(または処理)
:
)
((値2a 値2b 値2c …)
式(または処理)
式(または処理)
:
)
((値3a 値3b 値3c …)
式(または処理)
式(または処理)
:
)
:
(t ; 該当する値がない場合
式(または処理)
式(または処理)
:
)
)
Scheme言語と違う点として、該当する値がない場合の識別には else ではなく t を使う。