天天看點

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中累加器是第二個參數 元素是第一個參數