http://minsone.github.io/mac/ios/swift-map-filter-reduce-and-inference
다른 함수를 전달 인자로 받거나 함수 실행의 결과를 함수로 반환하는 함수
// map
let numbers = [0,1,2,3]
let mapArray = numbers.map { (number) -> Int in
return number * 2
}
print("map \(mapArray)") // map [0, 2, 4, 6]
// filter
let intArray = [10,5,20,13,4]
let filterArray = intArray.filter{ $0 > 5} // 클로져 간소화
print("filter \(filterArray)") // filter [10, 20, 13]
//reduce
let someArray = [1,2,3,4,5]
let reduceResult = someArray.reduce(0) {
(acc: Int, cur: Int) -> Int in
print("\(acc) + \(cur)")
return acc + cur
}
/*
0 + 1
1 + 2
3 + 3
6 + 4
10 + 5
*/
print("reduce \(reduceResult)") // reduce 15