// Custom callback function
// Custom function that applies a callback to each element
fun applyToArray(arr: Array<Int>, callback: (Int) -> Int): Array<Int> {
val result = Array(arr.size) { 0 }
for (i in arr.indices) {
result[i] = callback(arr[i]) // apply the callback
}
return result
}
// callback function
fun square(x: Int): Int = x * x
fun main() {
val numbers = arrayOf(2, 4, 6, 8)
val squared = applyToArray(numbers, ::square)
println(squared.toList())
}
/*
run:
[4, 16, 36, 64]
*/