【发布时间】:2017-01-12 16:51:52
【问题描述】:
我正在使用 chessie 辅助函数库来执行 ROP(单子) https://github.com/fsprojects/Chessie/blob/master/src/Chessie/ErrorHandling.fs
但是我不确定如何将以下三个函数简洁地组合在一起。只有当 func1 和 func2 返回成功时,才应评估 twoInputFunc。
val func1 : int -> Result<Tp1, 'a>
val func2 : string -> Result<Tp2, 'a>
val twoInputFunc : par1:Tp1 -> Tpar2:Tp2 -> Result<Ta,'a>
【问题讨论】:
-
我认为 Chessie 非常适合处理输入处理等需要经过一系列解析操作的事情。然而,如果你将它用于太多事情,它会使你的代码变得更丑 - 有一个棘手的平衡,但有时使用普通异常可能更容易(因为你完全避免了这种事情)。没有具体的例子很难说,但最好不要太虔诚:-)。