除了它看起来很丑,而且对非OCaml程序员来说很难解释之外,没有其他原因,是否有其他方法可以替代
let* _ = do_something in
?
当然有 >>= fun() ->
,这看起来并没有更好。
也许是
let (;*) = >>= fun () ->
?
首先,最好是写。
let* () = do_something in
...
要明确返回类型是 unit
.
没有规定单项操作返回的是 unit
在新 绑定运算符 语法,但也存在各种px扩展,例如。ppx_monadic ,提供做注解。
最后,你可以使用排序操作符,由你的单体库提供,例如,在Monads中就有 顺序,所以你可以写。
sequence [
do_one_thing;
do_another_thing;
and_so_on;
]