HOF foldLeft / foldRight
foldLeft 和 foldRight 都是对于 List 遍历的 高阶函数。是对列表遍历过程中进行函数操作的高阶函数抽象。
List 遍历
假设有两个方法如下
// 求和
def sum(ints: List[Int]): Int = ints match {
case Nil => 0
case Cons(x, xs) => x + sum(xs)
}
//阶乘
def product(ds: List[Double]): Double = ds match {
case Nil => 1.0
case Cons(x, xs) => x * product(xs)
}
可以看到这两个方法体很相似,基本可以概括为
case Nil => #ReturnBack#
case Cons(head, tail) => #递归遍历 + function 操作#
foldRight
定义输入 参数如下
li : List [A]
b: Nil返回结果
f :