当 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;
]
除了它看起来很丑,而且对于非 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;
]