5

我正在尝试在鸡蛋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(自制包)测试,csicsc.

4

1 回答 1

4

我在 Chicken 邮件列表上询问了这个问题,并立即得到了帮助。首先,对于scheme-report-environment,需要有一个额外的导入

(import
   (scheme base)
   (scheme eval)
   (only (scheme r5rs) scheme-report-environment))

Chicken 中还有两个错误 - 在一天内修复(!)(请参阅邮件列表存档)。使用 1.0.3 版的r7rsegg,eval现在可以在库中按预期工作。

于 2020-09-11T21:42:20.283 回答