如何在鸡 r7rs 库中(eval ...)?
How to (eval ...) in a chicken r7rs library?
我正在尝试让一个基本的 eval
在 r7rs
egg 的库中工作。以下 toplevel(不是库)程序按我的预期工作,当 运行 和 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 环境似乎存在一些问题,但我不确定这是否与此处相关。
使用 chicken 版本 5.2.0(自制程序包)进行测试,csi
和 csc
。
我在 Chicken 邮件列表上询问了这个问题,并立即得到了帮助。首先,对于scheme-report-environment
,需要额外导入
(import
(scheme base)
(scheme eval)
(only (scheme r5rs) scheme-report-environment))
Chicken 中还有两个错误 - 已在一天内修复 (!)(请参阅 mailing list archive)。使用 r7rs
egg 的 1.0.3 版本,eval
现在可以在库中正常工作。
我正在尝试让一个基本的 eval
在 r7rs
egg 的库中工作。以下 toplevel(不是库)程序按我的预期工作,当 运行 和 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 环境似乎存在一些问题,但我不确定这是否与此处相关。
使用 chicken 版本 5.2.0(自制程序包)进行测试,csi
和 csc
。
我在 Chicken 邮件列表上询问了这个问题,并立即得到了帮助。首先,对于scheme-report-environment
,需要额外导入
(import
(scheme base)
(scheme eval)
(only (scheme r5rs) scheme-report-environment))
Chicken 中还有两个错误 - 已在一天内修复 (!)(请参阅 mailing list archive)。使用 r7rs
egg 的 1.0.3 版本,eval
现在可以在库中正常工作。