[英]Either, Try, and Validation in Scala
我对scalaz
Either
, Try
和Validation
感到困惑。 他们似乎没有做我需要的事情。 我需要的是一个简单的monad Result[E, R]
,其中E
是错误类型, R
是结果类型。
Either
,因为它不是一个单子(但突起是)和无偏见是不适合的。 Try
不合适,因为它的错误类型是Throwable
并且它不完全是monad Validation
根本不是monad。 你会建议什么? 我应该自己写这个Result
类型吗?
如果你愿意使用Scalaz(这听起来像你是), \\/
(通常发音“脱节”)是你在寻找什么,一个单子,右偏版本的Either
。
它还包括很多其他很好的东西,你没有在标准库中正确投影Either
( 1.right
语法,像+++
这样的组合器,来自Validation
转换器等)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.