37.List的foldLeft、foldRight、sort操作代码实战
来源:互联网 发布:matlab求解非线性优化 编辑:程序博客网 时间:2024/06/07 23:44
def main(args: Array[String]): Unit = { println((1 to 100).foldLeft(0)(_ + _)) //初始值为0,从1一直加到100 println(( 0 /: (1 to 100) ) (_ + _)) println((1 to 5).foldRight(100) (_ - _)) //初始值为100,1-100=-99,2-(-99)=101,3-101= -98, 4-(-98)=102,5-102=-97 println( ((1 to 5) :\ 100) (_ - _) ) println(List(1,-3,4,2,6) sortWith(_ < _)) //从小到大排序 println(List(1,-3,4,2,6) sortWith(_ > _)) //从大到小排序 }
输出:
5050
5050
-97
-97
List(-3, 1, 2, 4, 6)
List(6, 4, 2, 1, -3)
源码:
def /:[B](z: B)(op: (B, A) => B): B = foldLeft(z)(op) def :\[B](z: B)(op: (A, B) => B): B = foldRight(z)(op) def foldLeft[B](z: B)(op: (B, A) => B): B = { var result = z this foreach (x => result = op(result, x)) result } def foldRight[B](z: B)(op: (A, B) => B): B = reversed.foldLeft(z)((x, y) => op(y, x))
参考资料来源于大数据梦工厂 深入浅出scala 第37讲 由王家林老师讲解
阅读全文
0 0
- 37.List的foldLeft、foldRight、sort操作代码实战
- scala-37::List的foldLeft、foldRight、sort操作代码实战
- Scala深入浅出实战经典:37,List的foldLeft、foldRight、sort操作代码实战
- scala学习之:List的foldLeft、foldRight操作实战
- Scala: foldLeft和foldRight 实战
- Scala的foldLeft和foldRight
- Scala的foldLeft和foldRight
- Scala的foldLeft和foldRight
- scala里面的foldLeft和foldRight
- Scala :foldLeft foldRight min max
- fold/foldLeft/foldRight区别和联系
- scala基础38-foldLeft/foldRight/sortWith
- scala中的reduceLeft,reduceRight,foldLeft,foldRight方法
- fold,foldLeft和foldRight区别与联系
- Scala:fold,foldLeft和foldRight区别与联系
- Scala:fold,foldLeft和foldRight区别与联系
- Scala:fold,foldLeft和foldRight区别与联系
- Scala List foldLeft用法
- 百度笔试题:malloc/free与new/delete的区别
- windbg-获取结构体大小(常用的两种方式)
- windows下启动openoffice服务
- 51Nod 1004 n^n的末位数字()
- 作业
- 37.List的foldLeft、foldRight、sort操作代码实战
- Caffe2新增RNN支持
- 线程控制
- 2016中国大学生程序设计竞赛(ccpc 长春) Fraction【模拟】
- 事务传播行为
- C语言笔记——一些小细节
- JavaScript数组去重方法
- Python-Redis操作
- android调试出现:Installation failed with message Failed to establish session