当 let* _ = 时,有没有更好的 let* 语法?

Is there a better syntax for let*, when let* _ =?

除了它看起来很丑,而且对于非 OCaml 程序员来说很难解释之外,没有其他原因,是否有替代方案

let* _ = do_something in

?

当然有>>= fun() ->,也好不到哪里去

可能

let (;*) = >>= fun () ->

?

首先写的比较好,

let* () = do_something in
...

明确表示 return 类型是 unit

在提供 do-notation 的新 binding operator syntax, but there exist various ppx extensions, e.g., ppx_monadic 中没有提供单子操作 returning unit

最后,你可以使用你的 monadic 库提供的排序运算符,例如,在 Monads 中有 sequence,所以你可以写,

sequence [
 do_one_thing;
 do_another_thing;
 and_so_on;
]