1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
| object FunctionDemo4 { def main(args: Array[String]): Unit = { val arr1 = Array(10, 20, 30, 40, 50) foreach(arr1, param => println(param)) foreach(arr1, println)
val arr2 = filter(arr1, _ % 2 == 0) foreach(arr2, x=>print(s"$x\t"))
println() val arr3 = map(arr1,x=>x*x) foreach(arr3, x=>print(s"$x\t"))
println()
var reduce_res = reduce(arr1,_+_) println(reduce_res) }
def foreach(arr: Array[Int], op: Int => Unit) = { for (elem <- arr) { op(elem) } }
def filter(arr: Array[Int], condition: Int => Boolean): Array[Int] = { for (i <- arr if condition(i)) yield { i } }
def map(arr:Array[Int],op:Int=>Int):Array[Int]={ for(elem<-arr) yield op(elem) }
def reduce(arr:Array[Int],op:(Int,Int)=>Int): Int ={ var param1 = arr(0); for(i<- 1 until arr.length-1){ param1=op(param1,arr(i)) } param1 }
}
|