// Your own callback function
object CallbackExample extends App {
def applyToArray(arr: Array[Int], callback: Int => Int): Array[Int] = {
val result = new Array[Int](arr.length)
for (i <- arr.indices) {
result(i) = callback(arr(i)) // apply the callback
}
result
}
// callback function
def square(x: Int): Int = x * x
val numbers = Array(2, 4, 6, 12)
val squared = applyToArray(numbers, square)
println(squared.mkString(", "))
}
/*
run:
4, 16, 36, 144
*/