For Development HEAD DRAFTSearch (procedure/syntax/module):

11.1 SRFIが使えるかどうかテストする

特定のSRFIが使えるかどうかをcond-expandで検査する場合は、機能要請式 (library library-name)が使えます (機能条件式参照)。 library-nameにはGauche方式のモジュール名もR7RS方式のライブラリ名も使えます。

;; Use 'library' feature requirement with Gauche module name
(cond-expand
  [(library srfi.13) (use srfi.13) ...]
  [else ...])

;; Use 'library' feature requirement with R7RS library name
(cond-expand
  [(library (srfi 13)) (import (srfi 13)) ...]
  [else ...])

他に、SRFI名を直接機能識別子として使うこともできます。 ただし、この機能は非推奨です。これはR7RS以前の方式です。 この指定を使った場合、機能条件が満たされたならば、必要なモジュールは自動的にインポート されているので、useimportでインポートする必要はありません。 ただそれは、onlyrenameprefix節などでインポートする 識別子を制御できないということでもあります。

;; DEPRECATED.  Use 'srfi-N' feature identifier.
;; If the feature is fulfilled, you can assume the module is already 'use'd.
(cond-expand
  [srfi-13 ...]
  [else ...])

srfi-Nが機能識別子として使われた場合、 環境変数GAUCHE_WARN_SRFI_FEATURE_IDがセットされていれば 警告が表示されます。将来はデフォルトで警告するようになります。 srfi-N機能識別子を使っているユーザは、なるべく早く (library srfi.N)へと書き換えるようにしてください。



For Development HEAD DRAFTSearch (procedure/syntax/module):
DRAFT