《条件》 を評価し, その値が #f以外なら 《式》 を評価してその値を返す. もし 《条件》 の値が #fなら, 《式》 を評価してその値を返す. 《式》 が与えられていなければ ()を値として返す.
例:
(if #t 1) 1
(if #t 1 2) 1
(if #f 1) ()
(if #f 1 2) 2
各 《節》 は次のいずれかの形を取る.
《条件》 を評価し,その値が #fなら次の節に移る. #f以外なら 《式》 《式》 を順次評価して 《式》 の値を返す. 《式》 が1つも与えられないときは, 《条件》 の値を返す.
《条件》 を評価し,その値が #fなら次の節に移る. #f以外なら《関数式》 を評価し, その値を引数の関数として呼び出す. 関数への引数は《条件》の値である. 呼び出された関数の返り値を cond式の値として返す.
《式》 《式》 を 順次評価して 《式》 の値を返す. 《式》 が1つも与えられないときは ()を返す.
例:
(cond ((> 3 3) 'greater)
((< 3 3) 'less)
(else 'equal))
equal
まず 《鍵》 を評価する. 各 《節》 は次のいずれかの形を取り, caseは次のように実行を行う.
《鍵》 の値と 《データ》 《データ》 のいずれかが eqv?の意味で等しければ, 《式》 《式》 を 順次評価して 《式》 の値を返す. 《式》 が1つも与えられないときは ()を返す. 《データ》 《データ》 のいずれにも eqv?の意味で等しくなけば,次の節に移る.
《式》 《式》 を 順次評価して 《式》 の値を返す. 《式》 が1つも与えられないときは ()を返す.
例:
(case (car '(c d))
((a i u e o) 'vowel)
((w y) 'semivowel)
(else 'consonant))
consonant