lub*_*bgr 5 scheme chicken-scheme r7rs
我正在尝试获得eval在r7rs鸡蛋库中工作的基本知识。以下顶级(不是库)程序按我的预期工作,运行时csi -R r7rs:
(import (scheme base)
(scheme eval))
(eval '42 (scheme-report-environment 5))
Run Code Online (Sandbox Code Playgroud)
这也适用于(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)))))
Run Code Online (Sandbox Code Playgroud)
我得到
Error: module unresolved: test-eval
....
<syntax> [my-eval] (scheme-report-environment 5)
<syntax> (##core#begin)
<syntax> (##core#undefined) <--
Run Code Online (Sandbox Code Playgroud)
可能是什么问题呢?Wiki 中的R7RS 环境似乎存在一些问题,但我不确定这是否与此处相关。
用鸡 5.2.0 版(自制程序包)测试,两者csi和csc.
我在 Chicken 邮件列表上询问了这个问题,并立即得到了帮助。首先,对于scheme-report-environment,需要额外导入
(import
(scheme base)
(scheme eval)
(only (scheme r5rs) scheme-report-environment))
Run Code Online (Sandbox Code Playgroud)
Chicken 中还有两个错误 - 一天之内就得到了修复(!)(请参阅邮件列表存档)。使用 Egg 1.0.3 版本r7rs,eval现在可以在库中按预期工作。