天天看点

Coursera Scala 5-5 List:Reduction of Lists

另一个list常用的操作是:连结集合元素。例如sum(list)

使用reduceleft可以很方便的编写通用的连结方法

reduceleft不能处理nil 一般用foldleft代替使用

foldleft比reduceleft多一个累积器

以及foldright

注意foldleft和foldright并不一定能通用

原因在于

foldleft中 累加器在参数左

foldright中 累加器在参数右

累加器的类型是u list的类型是t

foldleft是:

u t

而foldright则是

t u

也就是一个操作符的问题 例如:: 左边是要t的 而右边是list[t] 注意一下缩写的op函数就可以了

foldleft中累加器是第一个参数 元素是第二个参数

foldright中累加器是第二个参数 元素是第一个参数