ReasonML 是否具有 F# 的计算表达式的等效项?

Does ReasonML have an equivalent of F#'s Computation Expressions?

在 F# 中我们有 Computation Expressions,它可以减少在各种计算上下文(异步、可选等)中工作时的样板代码和嵌套。

默认情况下,不;没有计算表达式。 Reason 只是另一种仍然共享所有 OCaml 语义的语法,因此通常使用模块、函子和组合来实现类似的行为。

但是,Reason 和 OCaml 有 ppx 重写器,允许扩展语法来实现这类事情。已经有一个 open issue about a special syntax for asynchronous and awaitable computations.

一些有用的 ppx 重写器,类似于计算表达式:

  • ppx_let:单子 let-bindings
  • ppx_lwt:LWT编程,async/await
  • ppx_deriving: Haskell 类似于类型推导,类似于 ShowEqOrd