我想获得一个基本的 eval
在 r7rs
的库中工作蛋。当使用 csi -R r7rs
运行时,以下顶级(不是库)程序按我的预期工作:
(import (scheme base)
(scheme eval))
(eval '42 (scheme-report-environment 5))
这适用于 (null-environment 5)
,也一样(但不包括 (environment '(scheme base) ...)
变体)。但是,在库中:(define-library (test-eval)
(import
(scheme base)
(scheme eval))
(export
my-eval)
(begin
(define (my-eval)
(eval '42 (scheme-report-environment 5)))))
我得到Error: module unresolved: test-eval
....
<syntax> [my-eval] (scheme-report-environment 5)
<syntax> (##core#begin)
<syntax> (##core#undefined) <--
可能是什么问题呢? Wiki 中的 R7RS 环境似乎存在一些问题。 ,但我不确定这是否与此处有关。用鸡版本 5.2.0(自制程序包)测试,两者都是
csi
和 csc
.
最佳答案
我在 Chicken 邮件列表上询问了这个问题,并立即得到了帮助。首先,对于scheme-report-environment
,需要额外导入
(import
(scheme base)
(scheme eval)
(only (scheme r5rs) scheme-report-environment))
在Chicken 中还有两个错误——它们在一天之内被修复(!)(参见mailing list archive)。使用 1.0.3 版 r7rs
鸡蛋,eval
现在在库中按预期工作。
关于scheme - 如何(eval ...)在鸡 r7rs 库中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63795556/