【发布时间】:2014-07-24 23:21:14
【问题描述】:
F# 是否具有与 OCaml 的 Async 库等效的功能?具体来说,是否能够轻松地生成延迟值并在填充时执行函数?
特别是,我想等到某个特定的引用发生变化,然后再做一些事情。在 OCaml 中,我会通过创建一个 ivar 并调用它的读取函数来做到这一点;我如何在 F# 中做到这一点?
【问题讨论】:
-
Asynchronous Workflows 是 F# 的一大卖点。我不能说你可以直接翻译,但你几乎肯定会找到类似的东西。
-
听起来你在问System.Lazy(另见the
lazykeyword)。 -
@ildjarn 嗯。我不知道。这在我看来就像“这是一件事,在我准备好之前不要评估它”;我想要“开始这件事,告诉我什么时候准备好。”
-
请通过链接或代码示例进行说明,以便我们学习或提供帮助。
-
@linkhyrule5 :那就是
Task<T>。另请参阅Async.AwaitTask、Async.StartAsTask和Async.StartChildAsTask。
标签: asynchronous f# ocaml