相关疑难解决方法(0)

函数式编程中的reduce和foldLeft/fold之间的区别(特别是Scala和Scala API)?

为什么Scala和像Spark和Scalding这样的框架都有reducefoldLeft?那么reduce和之间的区别是fold什么?

reduce functional-programming scala fold scalding

93
推荐指数
2
解决办法
3万
查看次数

fold和foldLeft或foldRight之间的区别?

注意:我在使用Scala 2.8-can这是一个问题?

为什么我不能使用fold功能的方式相同foldLeftfoldRight

Set scaladoc中它说:

折叠的结果可能只是此并行集合的类型参数的超类型T.

但我T在函数签名中看不到任何类型参数:

def fold [A1 >: A] (z: A1)(op: (A1, A1) ? A1): A1
Run Code Online (Sandbox Code Playgroud)

foldLeft-Right和之间的区别是什么fold,以及如何使用后者?

编辑:例如,如何编写折叠以添加列表中的所有元素?有了foldLeft它将是:

val foo = List(1, 2, 3)
foo.foldLeft(0)(_ + _)

// now try fold:
foo.fold(0)(_ + _)
>:7: error: value fold is not a member of List[Int]
  foo.fold(0)(_ + _)
    ^
Run Code Online (Sandbox Code Playgroud)

scala fold

63
推荐指数
3
解决办法
2万
查看次数

标签 统计

fold ×2

scala ×2

functional-programming ×1

reduce ×1

scalding ×1