【发布时间】:2015-07-21 04:47:06
【问题描述】:
Welcome to DrRacket, version 6.0 [3m].
Language: racket; memory limit: 128 MB.
> promise?
#<procedure:promise?>
> (promise? (delay (+ 1 2)))
#t
我需要使用 R5RS 并且正在处理延迟评估...这里在 emacs 中使用 geiser:
racket@> (require r5rs)
racket@> (cons 1 '())
(mcons 1 '()) ;; this is how racket represents a r5rs cons
racket@> (define x (delay (+ 1 2)))
racket@> x
#<promise>
racket@> (promise? x)
#f ;; what is going on here???
racket@> promise?
#<procedure:promise?>
当然上面的代码(promise? x)应该返回#t...
我注意到当我在 DrRacket (gui) 中切换到 R5rS 时,出现以下错误。有人可以解释发生了什么吗?我以为promise? 是为R5RS 定义的。还是我弄错了?
Welcome to DrRacket, version 6.0 [3m].
Language: R5RS; memory limit: 128 MB.
> promise?
. . promise?: undefined;
cannot reference undefined identifier
>
【问题讨论】: