【发布时间】:2017-10-29 13:56:03
【问题描述】:
def map2[A,B,C] (a: Par[A], b: Par[B]) (f: (A,B) => C) : Par[C] =
(es: ExecutorService) => {
val af = a (es)
val bf = b (es)
UnitFuture (f(af.get, bf.get))
}
def map3[A,B,C,D] (pa :Par[A], pb: Par[B], pc: Par[C]) (f: (A,B,C) => D) :Par[D] =
map2(map2(pa,pb)((a,b)=>(c:C)=>f(a,b,c)),pc)(_(_))
我有 map2,需要根据 map2 生成 map3。我在 GitHub 中找到了解决方案,但很难理解。谁能看到它并解释 map3 以及它的作用 (())?
【问题讨论】:
标签: scala functional-programming