尝试评估引用的嵌套函数定义时,方案r5rs未定义错误

时间:2019-04-20 14:23:30

标签: scheme racket eval r5rs

似乎,如果我想在环境中使用getMessageFromStage(data, algoritmID, stageIDS, results = []) { //... if (nextStageId && nextAlgId && stage.render) { this.getMessageFromStage(data, nextAlgId, nextStageId, results); } } 来定义嵌套函数,并且如果在返回之前仅存在子eval,那么以前定义的内容将无法被引用define之后的版本(导致未定义的错误)。

但是,如果我在子define之间添加了一些废话代码,则可以顺利运行这些代码。

我不知道这是否是对define的错误使用,但这种行为似乎很奇怪……有人可以帮忙吗?

eval

错误消息:

#lang racket
(require r5rs)
(define env (scheme-report-environment 5))
(eval '(define (f)
         ;comment the next line to cause error
         0 ; or anything except define
         (define x 3)
         (define y (+ x 1))
         y) env)
(eval '(f) env)

0 个答案:

没有答案