Fork Join 与通用的 monad scala?
Fork Join with generic monad scala?
是否可以使用 cats 或 scalaz 以通用方式表达?
val common: F[Common] = ...
val a: F[A] = common.flatMap(commonToA)
val b: F[B] = common.flatMap(commonToB)
val result: F[(A,B)] = a someFunctionToProduct b
并确保common
效果只有效执行一次?
终于知道怎么做了。我可以这样做:
val common: F[Common] = ...
val fab = common.flatMap{
c=>
commonToA(c).zip(commonToB(c))
}
是否可以使用 cats 或 scalaz 以通用方式表达?
val common: F[Common] = ...
val a: F[A] = common.flatMap(commonToA)
val b: F[B] = common.flatMap(commonToB)
val result: F[(A,B)] = a someFunctionToProduct b
并确保common
效果只有效执行一次?
终于知道怎么做了。我可以这样做:
val common: F[Common] = ...
val fab = common.flatMap{
c=>
commonToA(c).zip(commonToB(c))
}