我一直在想,为什么fold和fold[Left|Right]的签名不同(当然除了名称。
答案 0 :(得分:3)
fold
可以并行执行,因为可以传递种子元素
任意数量的工人。
换句话说,下一次调用不依赖于最后一次调用
另一方面,foldLeft
和foldRight
必须顺序执行,因为B
参数可用于第二个元素,必须首先计算序列的第一个元素
注意seed
的{{1}}参数必须与集合中元素的类型相匹配。 fold
和foldLeft
没有此限制,他们将始终返回类型等于所用种子类型的元素。