whenとunless

8章4節のwhenとunlessに関して。

when

与えた式が真となるとき(つまり#fにならないとき)に限り処理をする場合に使う。

(when <条件式>
  複数のS式)

<条件式>を評価した後、それが#f以外になれば以降に続く「複数のS式」を順に評価して、最後のS式の値をwhen全体の値とする。
つまり、以下のようなif式と等価

(if <条件式>
  (begin 複数のS式))

unless

whenとは逆に、与えられた式が#fとなるときに限り処理をする場合に使う。

(unless <条件式>
  複数のS式)

これは以下のようなif式と等価

(if (not <条件式>)
  (begin 複数のS式))