scala - 列表的 Fold 和 Fold[Right/Left] 方法的签名差异

标签 scala scala-collections

我一直想知道,为什么有 fold 的签名和 fold[Left|Right]是不同的(当然除了名称。

最佳答案

微妙且非常重要的区别

fold 可以并行执行,因为可以传递种子元素 给任意数量的 worker 。

换句话说,下一次调用不依赖于上一次调用

另一方面,foldLeftfoldRight 必须按顺序执行,因为要使 B 参数可用于第二个元素,它必须首先执行计算序列的第一个元素。

不太重要但更明显的区别:

请注意,foldseed 参数必须与集合中元素的类型匹配。 foldLeftfoldRight 没有这个限制,它们将始终返回一个类型等于所使用的种子类型的元素。

关于scala - 列表的 Fold 和 Fold[Right/Left] 方法的签名差异,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46015204/

相关文章:

Scala XML 提取逗号分隔符中的元素

scala - 使用 Ensime + SBT 浏览 scala 库

scala - IntelliJ 哪一招不是已经用过了?

Scala map : mysterious syntactic sugar?

scala - 我们如何对 Spark RDD 中的数据进行排序和分组?

scala - 如何比较两个 Traversable 包含完全相同的元素?

scala - 使用 Akka actors 进行异常处理

Scala 按索引过滤列表

scala - 获取 Scala 映射中的最大值以及键

java - 将 Java TreeMap 代码迁移到 Scala?