cond-expand
(cond-expand (requirement body...)... [(else body...)])
要件が成り立つ最初の節を、なければ else 節を選び、その本体を begin と同じように置きます: トップレベルと本体ではその定義はそこでの定義に、先頭の import の並びではその import はプログラムの import に、式の中では最後の形式の値になります。define-library の宣言としては、本体はさらに宣言の並びです。要件は次のいずれかです:
- 機能識別子。features が返すもののいずれか;
(library name)。(import name)がライブラリを見つけられるとき成り立ちます: このフロントエンドにある標準ライブラリ、それより前のdefine-library、またはライブラリファイル;(and requirement...)、(or requirement...)、(not requirement)。
節はプログラムを読む時点で選ばれるので、コンパイルしたプログラムには選ばれた本体だけが入ります。どの節も成り立たず else もない cond-expand はエラーです。R7RS では未規定です。
2/3