2016-08-25 34 views
0

我試圖將List[\/[String, Int]]轉換爲\/[String, List[Int]]。 我能找到的所有解決方案都指出了sequenceU的用法。 我無法返回\/[String, List[Int]],因爲sequenceU返回類型G.M[List[G.A]]Scalaz:序列與序列的析取序列

def f(x: Int): \/[String, Int] = if (x > 0) x.right[String] else "failure".left[Int] 
val result: G.M[List[G.A]] = List(3, 4, 5).map(f).sequenceU 

什麼我與sequenceU做錯了嗎?它應該如何獲得\/[String, List[Int]]

回答

1

只是刪除類型歸屬:

scala> val result = List(3, 4, 5).map(f).sequenceU 
result: scalaz.\/[String,List[Int]] = \/-(List(3, 4, 5))