def values(fun:(Int)=>Int,low:Int,high:Int)={
var array = List[(Int,Int)]()
low to high foreach {
x =>
array =(x,fun(x)):: array
}
array
}println(values(x => x * x,-5,5).mkString)
val arr =Array(1,333,4,6,4,4,9,32,6,9,0,2)print(arr.reduceLeft((l,r)=>if(l>=r) l else r))
用 to 和 reduceLeft 实现阶乘函数,不得使用循环或递归
def factorial(n:Int): Unit ={1 to n reduceLeft(_ * _)}
编写函数 largest(fun:(Int)=>Int,inputs:Seq[Int]),输出在给定输入序列中给定函数的最大值。举例来说, largest(x=>10x-xx,1 to 10)应该返回 25.不得使用循环或递归
def largest1(fun:(Int)=>Int, inputs:Seq[Int])= inputs.foldLeft(1)((a,b)=>if(fun(b)>a)fun(b)else a)
def largest2(fun:(Int)=>Int, inputs:Seq[Int])= inputs.map(fun(_)).max
println(largest1(x =>10* x - x * x,1 to 10))println(largest2(x =>10* x - x * x,1 to 10))
def ajustToPair(fun:(Int, Int)=> Int)=(x:(Int, Int))=>fun(x._1, x._2)
val x =ajustToPair(_ * _)((6,7))println(x)
val pairs =(1 to 10) zip (11 to 20)println(pairs)
val y = pairs.map(ajustToPair(_ + _))println(y)