Coursera Scala 5-5 List:Reduction of Lists
2014-07-11 16:52
183 查看
Coursera Scala 5-5 List:Reduction of Lists
另一个list常用的操作是:连结集合元素。例如sum(list)
ReduceLeft
使用ReduceLeft可以很方便的编写通用的连结方法def sum(xs: List[Int]) = (0 :: xs) reduceLeft ((x,y) => x+y) def product(xs : List[Int]) = (1 :: xs) reduceLeft((x,y) => x*y)
FoldLeft
reduceLeft不能处理Nil 一般用foldLeft代替使用FoldLeft比ReduceLeft多一个累积器
def sum(xs: List[Int]) = (xs foldLeft 0) (_+_) def product(xs : List[Int]) = (xs foldLeft 1) (_+_)
以及foldRight
注意foldLeft和foldRight并不一定能通用
原因在于
foldLeft中 累加器在参数左
foldRight中 累加器在参数右
累加器的类型是U List的类型是T
foldLeft是:
U T
U T
U T
而foldRight则是
T U
T U
U T
也就是一个操作符的问题 例如:: 左边是要T的 而右边是List[T] 注意一下缩写的op函数就可以了
foldLeft中累加器是第一个参数 元素是第二个参数
foldRight中累加器是第二个参数 元素是第一个参数
相关文章推荐
- Coursera Scala 5-4:List的高阶函数
- Scala学习笔记23【List 的map、flatMap、foreach、filter操作实战】
- scala学习之ListBuffer、ArrayBuffer、Queue、Stack
- ubuntu 解决 “E: Problem wih MergeList /var/lib/apt/lists/”错误
- Programming In Scala笔记-第十六章、Scala中的List
- Coursera Scala 2-5,6:类
- 第81讲:Scala中List的构造是的类型约束逆变、协变、下界
- 第81讲:Scala中List的构造时的类型约束逆变、协变、下界详解学习笔记
- 【转】Scala 片段2:List的操作符魔法
- Scala学习笔记--List、ListBuffer
- Scala List一阶函数操作
- scala-32:List的基本操作实战与基于模式匹配的List排序算法实现
- Coursera Chaptereight:Lists Assignment 8.5
- scala基础37-List高级方法
- scala基础39-List伴生对象操作方法
- Android ApiDemos示例解析(177):Views->Lists->10. Single choice list
- 大数据学习之Scala中列表(List)的使用学习(5)
- Scala 深入浅出实战经典 第81讲:Scala中List的构造是的类型约束逆变、协变、下界详解
- java foreach 获取对象的字段 List<company> lists
- Coursera 公开课 Functional Programming Principles in Scala习题解