고차함수

    [Swift] 고차함수(2) - filter, reduce

    [Swift] 고차함수(2) - filter, reduce

    이번 포스팅에서는 스위프트의 고차함수인 filter, reduce를 이용하여 데이터 연산을 쉽게 수행하는 방법을 알아보고자 한다. filter와 reduce는 어떤 함수이고, 어떻게 작동하는지 살펴보자 filter 필터는 말 그대로 컨테이너 내부의 값을 걸러서 추출하는 역할을 하는 고차함수이다. 맵과 마찬가지로 새로운 컨테이너에 값을 담아 반환해준다. 다만 맵처럼 기존 콘텐츠를 변형하는 것이 아니라, 특정 조건에 맞게 걸러내는 역할을 한다는 점에서 차이가 있다. filter 함수의 매개변수로 전달되는 함수의 반환 타입은 Bool형이다. 해당 콘텐츠의 값으로 새로운 컨테이너에 포함될 항목이라고 판단하면 true를, 포함하지 않으려면 false를 반환해주면 된다. 사용 예제 다음은 필터 메서드의 간단한 사용..

    [Swift] 고차함수(1) - map, flatMap, compactMap

    [Swift] 고차함수(1) - map, flatMap, compactMap

    스위프트에서는 함수를 일급 객체로 취급한다. 따라서 함수를 다른 함수의 전달 인자로 사용할 수 있다. 매개변수로 함수를 갖는 함수를 고차 함수라고 부르는데, 그중 map, flatMap, compactMap에 대해 알아볼 예정이다. map 맵은 자신을 호출할 때 매개변수로 전달된 함수를 실행하여 그 결과를 다시 반환해주는 함수이다. 스위프트에서 맵은 배열, 딕셔너리, 세트, 옵셔널 등에서 사용할 수 있다. 조금 더 정확히 말하자면 Sequence, Collection 프로토콜을 따르는 타입과 옵셔널은 모두 맵을 사용할 수 있다. 맵을 사용 하면 컨테이너가 담고 있던 각각의 값을 매개변수를 통해 받은 함수에 적용한 후 새 컨테이너에 포장하여 반환한다. 기존 컨테이너의 값은 변경되지 않고 새로운 컨테이너가 ..