如何轉換Scalaz:轉換ValidationNel的ValidationNel到ValidationNel
val from: ValidationNel[E, ValidationNel[E, T]]
到
val to: ValidationNel[E, T]
,同時捕獲所有驗證錯誤?
如何轉換Scalaz:轉換ValidationNel的ValidationNel到ValidationNel
val from: ValidationNel[E, ValidationNel[E, T]]
到
val to: ValidationNel[E, T]
,同時捕獲所有驗證錯誤?
只是flatMap
是ValidationNel
:
from.flatMap(identity)
可以使用from.fold(Failure(_), identity)
。
一般而言,flatMap(identity)或.join適用於任何Monad,用於將F [F [A]]轉換爲F [A],但Validation不是Monad,Validation的flatMap/join方法是棄用。
謝謝!這就是它。 :) – silverberry 2014-11-14 21:38:33
'flatMap'仍在,只是更明確https://github.com/scalaz/scalaz/blob/series/7.2.x/core/src/main/scala/scalaz/Validation.scala#L373-L376 – Noah 2014-11-14 21:39:33
謝謝@noah,更新了我的答案 – stew 2014-11-14 21:41:32