: 함수를 인자로 받거나, 함수를 반환하는 함수
즉, 함수를 다루는 함수이다.
func applyTwice(_ x: Int, _ f: (Int) -> Int) -> Int {
return f(f(x))
}
let result = applyTwice(3) { $0 + 1 } // (3 + 1) + 1 = 5
func makeAdder(_ x: Int) -> (Int) -> Int {
return { y in x + y }
}
let add3 = makeAdder(3)
let result = add3(5) // 3 + 5 = 8
let numbers = [1, 2, 3]
let doubled = numbers.map { $0 * 2 }
print(doubled) // [2, 4, 6]
let numbers = [1, 2, 3, 4, 5]
let even = numbers.filter { $0 % 2 == 0 }
print(even) // [2, 4]
let numbers = [1, 2, 3, 4]
let sum = numbers.reduce(0) { $0 + $1 }
print(sum) // 10
let words = ["banana", "apple", "cherry"]
let sortedWords = words.sorted(by: <)
print(sortedWords) // ["apple", "banana", "cherry"]