【发布时间】:2015-09-29 14:07:20
【问题描述】:
我想以编程方式在 R 中创建一个承诺。我知道该语言支持它。但由于某种原因,似乎没有办法做到这一点。
提供更多细节:我希望对列表的组件进行惰性评估。例如
x <- list(node=i, children=promise(some_expensive_function(i))
我只想访问列表的第二个组件以获取列表的极少数值。用惰性表达式预先填充列表会产生非常清晰、紧凑和可读的代码。该算法的背景是树搜索。本质上,我试图在这里模拟协程行为。现在我为此使用闭包,但代码缺乏优雅。
是否有第三方包暴露了 R 中隐藏的 Promise 构造机制?或者这种机制是否明确地绑定到环境绑定而不是表达式?
附:是的,我知道延迟分配。它没有做我想要的。是的,我可以处理中间环境,但它也很混乱。
【问题讨论】:
-
我建议您使用“便宜”的功能编写更多代码。
标签: r promise lazy-evaluation coroutine