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