処理系依存部分のあるライブラリを書く


Tags: R6RS, ライブラリ

標準として定められた方法は存在しないが Ikarus, IronScheme, Larceny, Mosh, MzScheme, Ypsilon では (string-append "." (string-downcase <処理系名>) ".sls") という拡張子のファイルを import 時に探索するため、処理系依存部分をそのような拡張子を持つファイルに分離してやればよい。

例えば foo というライブラリを書く場合、処理系依存の部分を foo/compat.ikarus.sls, foo/compat.ironscheme.sls, ... に記述して抽象化し foo 本体を次のように書けばよい。

(library foo
  (export ...)
  (import (foo compat)
          ...
          )

  ...)