[英]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.