如何从 F# 中的任务编写 SelectMany

How do you write a SelectMany from a Task in F#

我想从 F# 中的任务编写 SelectMany monadic 绑定。我将如何编写以下在 F# 中使用 language-ext 的 C# 代码?

Task<int> result = from task in Task.Run<int>(() => 40) select task + 2;

您可以使用 F# TaskBuilder library 获取任务的 F# 计算表达式(monadic 语法)。有了这个,您可以将示例重写为:

let result = task {
  let! t = Task.Run<int>(() => 40)
  return t + 2 }