// Callback‑passing style similar to C, Go,
import Foundation
// Custom function that applies a callback to each element
func applyToArray(_ arr: [Int], callback: (Int) -> Int) -> [Int] {
var result = [Int]()
result.reserveCapacity(arr.count)
for value in arr {
result.append(callback(value)) // apply the callback
}
return result
}
// callback function
func square(_ x: Int) -> Int {
return x * x
}
let numbers = [2, 4, 6, 8]
let squared = applyToArray(numbers, callback: square)
print(squared)
/*
run:
[4, 16, 36, 64]
*/