懒惰评估与承诺/期货之间的区别

时间:2014-05-20 15:35:34

标签: language-agnostic promise lazy-evaluation future

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

它们都像延迟计算的占位符一样,我理解它们运作的原则是不同的,但实际的区别是什么?

1 个答案:

答案 0 :(得分:3)

承诺和"懒惰评估对象"是代理的形式。 Proxy是关键词。代理意味着"实际对象值的占位符"

  • 承诺是值的时间约束(时间)代理。像Kris Kowal的Q-Connection这样的一些图书馆甚至让你用承诺来代理远程对象,并且有很多关于这个用例的研究(真的!)是由Mark Miller在敌对条件下做出的。这实际上是承诺的原始动机(处理网络延迟)。

  • 延迟评估对象是一个值的代理,用于将评估推迟到您 来执行此操作。