// // simple demo of using loops to operate on arrays // println("how many values?") val n = readInt val a = new Array[Int](n) fillArray(a) println("you entered:") printArray(a) println("sum is " + arrayCombine(a, (x,y)=>(x+y), 0)) println("product is " + arrayCombine(a, (x,y)=>(x*y), 1)) println("min is " + arrayCombine(a, (x,y) => (x min y), Int.MaxValue)) println("max is " + arrayCombine(a, (x,y) => (x max y), Int.MinValue)) def fillArray(a : Array[Int]) { for (i <- 0 until a.size) a(i) = readInt } def printArray(a : Array[Int]) { for (i <- 0 until a.size) println(a(i)) } def arrayCombine(a : Array[Int], combine : (Int, Int) => Int, identity : Int) : Int = { var result = identity for (i <- 0 until a.size) result = combine(result, a(i)) result }