【发布时间】:2014-02-24 16:02:30
【问题描述】:
我如何对Future[\/[String,Int]] 类型的数据进行for 理解
这里是一个起点,不能编译。
import scala.concurrent.{ExecutionContext,future,Future}
import scalaz._
import Scalaz._
import ExecutionContext.Implicits.global
def calculateStuff(i:Int):Future[\/[String,Int]] = future{\/-(i)}
for {
v1Either <- calculateStuff(1)
v1Int <- v1Either
v2Either < calculateStuff(v1Int)
v2Int <- v2Either
v3Either <- calculateStuff(v2Int)
v3Int <- v3Either
} yield {
v1Int + v2Int + v3Int
}
注意:calculateStuff 只是一个例子,实际上会有不同的功能,每个取决于前面的结果。
【问题讨论】:
标签: scala scalaz monad-transformers