如何压扁析取类型

Vik*_*dya 6 scala scalaz

如果我有以下方法

 def getMyList :\/[Throwable,List[\/[Throwable,Int]]] ={
 ....
 }
Run Code Online (Sandbox Code Playgroud)

如何扁平化的类型getMyList\/[Throwable,List[Int]]

Noa*_*oah 9

只要flatMapsequenceU,这一切都在scalaz:

  def flatten(e: \/[Throwable,List[\/[Throwable,Int]]]): \/[Throwable,List[Int]] = {
    e.flatMap(a => a.sequenceU)
  }
Run Code Online (Sandbox Code Playgroud)

  • @bmaderbacher`sequenceU`自动为`Applicative`实例推断出正确的类型构造函数.这是一篇值得阅读的文章:http://eed3si9n.com/learning-scalaz-day15 (2认同)