고차원의 함수

함수를 파라미터로 사용하거나, 함수 실행의 결과를 함수로 리턴하는 함수

map, filter, reduce, forEach, compactMap, flatMap

Sequence, Collection 프로토콜을 따르는 컬렉션(배열, 딕셔너리, 세트 등) 에 기본적으로 구현되어 있는 함수

Optional 타입에도 구현되어 있음


reduce

컬렉션의 모든 요소를 하나의 값으로 축소하는 함수입니다.

reduce()는 초기값을 제공하고, 배열의 각 요소에 대해 일련의 작업을 수행하고, 최종 결과를 반환합니다. 이를 통해 배열을 처리하고 결과 값을 생성하는데 유용합니다.

let numbers = [1, 2, 3, 4, 5]
let sum = numbers.reduce(0, { $0 + $1 })
print(sum)

위 예제에서 초기값 0을 제공하고, 배열의 각 요소를 더하여 최종 결과 값 15를 반환합니다. $0은 누산기 변수이고. $1은 배열의 각 요소입니다.

let words = ["Swift", "is", "awesome"]
let combined = word.reduce("",{$0 + " " + $1 })
print(combined)

forEach