Как я могу создать библиотеку с именем 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!"))
Есть идеи?
Обновление: я нашел this для 'модулей mzscheme'.Это не для схемы r6rs, но функциональность, которую он предлагает, в основном именно то, что я ищу.Как мне сделать provide all-from-except
в схеме r6rs?