DrRacket/plt-r5rs と Gambit/gsi の両方で動作するものを書こうとしています。
私が抱えている問題は(load "foo.scm")
、Gambit でブロックが読み込まれないことdefine-syntax
です。Gambit で使用(include "foo.scm")
すると機能しますが、DrRacket ではもちろん構文エラーが発生します。
移植可能な R5RS コードを記述できるように、これを解決する方法はありますか?
私が試したこと:
- への再定義
(include "foo.scm")
、(load "foo.scm")
およびその逆。問題: Gambit でマクロを再定義するのは違法です。 - 上記の再定義を
(if gambit ...)
. 問題: if (別の define 内でない限り) 内に define を置くことは違法です。 - 代わりに、ファイル名を含む文字列をライブラリ ファイルのインクルードに渡します。問題: Gambit のインクルードは、解釈が開始される前に発生するようです。