我对以下两个进行了计时,看起来两者都需要相同的时间。使用另一个有什么好处吗?
(1 to 24).foldRight(List[Int]())((i, l) => l ::: generateList(signs, i))
VS
(1 to 24).map(i => generateList(signs, i)).reduce(_ ::: _)
P.S。在我的用例中,订单无关紧要。
答案 0 :(得分:4)
foldRight
按顺序运行,map
(理论上)可并行化,因为它的顺序没有定义。我不认为它在当前的scala运行时是并行的 - 只是它可能在将来或在不同的平台上。