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

问题描述 投票:0回答:1

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

let* _ = do_something in

?

当然有 >>= fun() ->,这看起来并没有更好。

也许是

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

?

ocaml monads
1个回答
1
投票

首先,最好是写。

let* () = do_something in
...

要明确返回类型是 unit.

没有规定单项操作返回的是 unit 在新 绑定运算符 语法,但也存在各种px扩展,例如。ppx_monadic ,提供做注解。

最后,你可以使用排序操作符,由你的单体库提供,例如,在Monads中就有 顺序,所以你可以写。

sequence [
 do_one_thing;
 do_another_thing;
 and_so_on;
]
© www.soinside.com 2019 - 2024. All rights reserved.