另一个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中累加器是第二个参数 元素是第一个参数