如何创建一个名为 rnrs-modified 的库,它会使以下代码显示“Hello, world!”...?
#!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 方案中我该怎么做?