我有这两个R7RS库,我一一进入Guile REPL:
(define-library (example one)
(import (scheme base))
(export f)
(begin
(define (f x)
(+ x 1))))
(define-library (example two)
(import (scheme base))
(export g)
(begin
(define (g x)
(* x 2))))
当我在 Guile REPL 中输入第二个库定义时,我收到此错误:
While compiling expression:
Syntax error:
unknown file:13:4: definition in expression context, where definitions are not allowed, in form (define (g x) (* x 2))
我试图将这两个库放入同一个文件 ( mylibs.sld
) 并运行guile mylibs.sld
,但我得到完全相同的错误。
据我了解,我收到此错误是因为define-library
在 Guile 读取第二个库定义时不知何故变得未定义。Guile 已经不知道是什么define-library
意思了。这是一种奇怪的行为。到底是怎么回事?如何在 REPL 中定义两个 R7RS 库?
Guile 版本:3.0.1