赤壁方案 - 简单的定义库示例不起作用



我写了下面的例子,试图在赤壁方案0.5.3中试验R7RS库:

(define-library (example hello)
    (export hello-world)
    (import (scheme base))
    (begin
      (define (hello-world) "hello, world"))) 
(import (scheme write)
        (example hello))
(write (hello-world))

不幸的是,在执行时,它会生成有关未定义变量的错误:

$ chibi-scheme  hello.scm 
ERROR: undefined variable: hello-world

我一定犯了一个简单的错误,但没有看到它。有什么想法吗?

事实证明,

这是一个简单的错误 - 根据用户指南的模块系统部分,文件名必须与模块名称匹配:

模块(foo bar baz)的定义在文件"foo/bar/baz.sld"中搜索。

因此,在这种情况下,需要将上述库定义添加到example/hello.sld并且需要将导入部分提取到新的.scm文件中(或 REPL 上的输入等)。

无论如何,这是一个微不足道的解决方案,但也许它会对其他人有所帮助......

通常,R7RS 没有定义如何使库对 Scheme 系统可见,并且没有定义将 define-library 与其他 Scheme 表单混合的代码的含义。

相关内容

  • 没有找到相关文章

最新更新