我刚开始学习Scala,所以请耐心等待:-)可以reduceLeft并行执行吗?
我有一个关于reduceLeft如何行为的问题。这里的一个示例:
List(1, 2, 3, 4, 5) reduceLeft (_ + _)
不知的计算可以simultanously进行,例如:
第一轮:
- 过程1个计算:1个+ 2
- 过程2个计算: 4 + 5
第二轮:
- 过程1计算:3 + 3
第三轮:
- 过程1个计算:6 + 9
至少这是我所期望的发生,如果我只是使用reduce函数而不是reduceLeft。或者确实reduceLeft真的只做一次减少?
((((1 + 2) + 3) + 4) + 5)
这基本上意味着它不能并行执行,每个人都应该喜欢减少过度reduceLeft /右如果可能的话?
不完全。 'reduceLEFT'按照定义是连续的(从左到右)。这就是为什么'blahLeft'和'blahRight' HOFs的并行版本被命名为'blah'的原因。 – 2013-03-08 02:54:46