惰性评估和承诺/未来的区别



promisefuturelazily evaluated function/object的区别是什么?

它们都像延迟计算的占位符,我知道它们操作的原理不同,但实际的区别是什么?

承诺和"惰性求值对象"都是代理的形式。代理是这里的关键词。代理的意思是"实际对象值的占位符"

  • 承诺是一个值的时间约束(暂时)代理。像Kris Kowal的Q-Connection这样的一些库甚至允许您用承诺代理远程对象,Mark Miller在恶劣的条件下对这个用例做了很多有趣的研究(真的!)。这实际上是承诺的最初动机(处理网络延迟)。

  • 一个延迟求值的对象是一个值的代理,将求值延迟到可以执行的点。

最新更新