在F#中,我们有计算表达式,它可以减少在各种计算上下文(异步,可选等(中工作时的样板和嵌套。
- ReasonML有类似的吗?
- 如果是这样,语法是什么?
默认情况下,nope;没有计算表达式。原因只是另一种仍然共享所有OCaml语义的语法,因此通常使用模块,函子和组合来实现类似的行为。
但是,Reason和OCaml具有ppx重写器,允许扩展语法以实现此类操作。已经有一个关于异步和可等待计算的特殊语法的未决问题。
一些类似于计算表达式的有用的 ppx 重写器:
- ppx_let:一元 let-bindings
- ppx_lwt:LWT 编程、异步/等待
- ppx_deriving:Haskell喜欢类型派生,比如
Show
,Eq
和Ord