似乎,如果我想在环境中使用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)