这样简单:
Welcome to DrScheme, version 4.2.3 [3m].
Language: Lazy Scheme; memory limit: 128 megabytes.
> (let ((x 2) (y 10))
(+ x y))
#<promise>
>
我按下输入以获取let表达式,它会给我#<promise>
。我做错了什么?
答案 0 :(得分:4)
它说Language: Lazy Scheme;
。我确信这意味着你正在使用一种懒惰运行的方案变体 - 即在结果需要之前它不会计算表达式。方案将在内部管理此方法将使用方案的promise
机制 - 而不是返回表达式的结果,而是返回promise
来计算结果。您应该能够通过针对此承诺调用force
来明确获得结果。
以下是一些参考资料:
非惰性方案将以您期望的方式运作。
HTH