快学Scala习题答案(第12章高阶函数)
来源:互联网 发布:java中接口作为参数 编辑:程序博客网 时间:2024/05/17 20:32
object exc12 { def main(args: Array[String]){ //1 def values(f:Int=>Int, low:Int , high:Int)={ //for(x <- low to high )yield x->f(x) (low to high).map(x=>x->f(x)) } println(values( x=>x*x, -5,5)) //2 assert( Array(2,13,5,12).reduceLeft(Math.max) == 13 ) //3 def factorial(x:Int)= (1 to x).reduceLeft(_*_)//(1 to x).product assert( factorial(4) == 24 ) //4 println( 1 to -3)//Range() def factorial2(x:Int)= (1 /: (1 to x))(_*_) //.foldLeft( 1)( _*_ ) assert( factorial2(0) == 1) //5 def largest(f:Int=>Int, inputs:Seq[Int])={ inputs.reduceLeft( (x,y)=> { if(f(x)>f(y)) f(x) else f(y) } ) } println( largest(x=>10*x-x*x,1 to 10))// should be 25, why 9??? //6 def largest2(f:Int=>Int, inputs:Seq[Int])={ inputs.reduceLeft( (x,y)=> { if(f(x)>f(y)) x else y} ) } println( largest2(x=>10*x-x*x,1 to 10))//5 //7 ** def adjustToPair(f:(Int,Int)=>Int)={ tup:(Int,Int) => f(tup._1, tup._2) } println( adjustToPair(_*_)((6,7))==42) println( ((1 to 10) zip (1 to 10)).map(adjustToPair(_+_))) //8 println( Array("abc","a","1234").corresponds(Array(3,1,4))( (s:String,l:Int)=>if( s.size == l) true else false)) //10 def unless(condition: =>Boolean)(action: =>Unit ) ={ if( !condition ){ action } } unless( 3 == 1){ println("not equals") } }}
0 0
- 快学Scala习题答案(第12章高阶函数)
- 快学Scala 第三章习题答案
- 快学Scala 第四章习题答案
- 快学Scala 第六章习题答案
- 快学Scala 第三章习题答案
- 快学Scala 第四章习题答案
- 快学Scala第五章习题答案
- 快学Scala 第六章习题答案
- 快学Scala 第八章习题答案
- 快学scala第一章习题答案
- 01 快学scala第一章习题答案
- 《快学Scala》习题详解 第12章 高阶函数
- 快学scala 第6章 对象 读书笔记及习题答案代码
- 快学scala 第十二章 高阶函数 读书笔记及习题答案代码
- 快学 scala 第二章课后习题答案
- 快学scala 第一章 读书笔记及习题答案代码
- 快学scala 第二章 读书笔记及习题答案代码
- 快学scala 第三章 读书笔记及习题答案代码
- leetcode-Minimum Path Sum
- 平衡二叉树
- 迭代法进行归并排序
- 工作中四种重要的能力------谈谈工作两年后的一点思考
- 创建组件代码
- 快学Scala习题答案(第12章高阶函数)
- 直接操作Framebuffer测试液晶屏
- 读《人类简史》有感
- 【线性代数公开课MIT Linear Algebra】 第十八课 行列式的性质
- MyBatis的标签汇总
- IOS面试题 综合版
- i2c--2.6.34文档:如何枚举产生i2c_client
- java-文件上传和下载
- 黑马程序员--集合二