scheme - 如何(eval ...)在鸡 r7rs 库中?

标签 scheme chicken-scheme r7rs

我想获得一个基本的 evalr7rs 的库中工作蛋。当使用 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 .

最佳答案

我在 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/

相关文章:

inheritance - 是否可以在 Scheme 中对函数/lambda/宏进行 "extend"处理?

scheme - 截至 2016 年,是否有支持 100% R7RS(小型)且没有偏差的方案实现?

方案中的矩阵乘法,列表列表

python - 为什么 Python 和 Ruby 这么慢,而 Lisp 实现却快?

scheme - 使用 let-values 而不是 let 有什么好处?

scheme - 鸡计划中的复数

scheme r7rs-large 有趣但是...它还在进行中吗?

lisp - 如何在 Scheme 中将符号用作函数?

方案获取列表中的最后一个元素

chicken-scheme - 相当于Python的virtualenv的鸡计划?