7

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

  • ReasonML 是否有这样的等价物?
  • 如果是这样,语法是什么?
4

1 回答 1

9

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

然而,Reason 和 OCaml 有ppx 重写器,允许扩展语法来实现这种事情。关于异步和等待计算的特殊语法已经存在一个未解决的问题。

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

  • ppx_let : 一元的 let 绑定
  • ppx_lwt : LWT 编程,异步/等待
  • ppx_deriving:类似于 Haskell 的类型推导,例如forShowEqOrd
于 2018-04-10T13:21:39.073 回答