次のコードに「Hello、world!」と表示されるrnrs-modifiedというライブラリを作成するにはどうすればよいですか...?
#!r6rs
(import (rnrs-modified))
(display set!)
またはこれでさえ良いでしょう(実際にはおそらくもっと良いです):
#!r6rs
(import (rnrs) (modified)) ;or (import (modified) (rnrs))
(display set!)
基本的に、ライブラリ内の構文キーワード(let、lambda、set!など)を再定義し、そのライブラリを別のライブラリまたはトップレベルプログラムにインポートして、それらの再定義されたキーワードを使用できるようにしたいと考えています。
しかし、私はこれを取得し続けます:
module: identifier already imported from a different source in:
set!
(lib "rnrs/main.ss")
(lib "rnrs-modified/main.ss")
rnrs-modifiedに使用しているコードは次のとおりです。
#!r6rs
(library (rnrs-modified)
(export (rename (f set!)))
(import (rnrs))
(define f "Hello, world!"))
何か案は?
更新:これは「mzschemeモジュール」で見つかりました。これはr6rsスキーム用ではありませんが、それが提供する機能は基本的に私が探しているものです。provide all-from-except
r6rsスキームでどのようにできますか?