[Scala] 고차함수 메서드 정리

smlee·2023년 8월 11일
0

Scala

목록 보기
12/37
post-thumbnail

Scala를 공부하면서 Scala는 고차함수를 이용하여 코드를 간결하게 할 수 있음을 체크했었다.
자주 사용되는 고차함수 메서드들을 정리하려고 한다.

고차함수(higher-order function)
함수를 인자로 받는 함수


많은 컬렉션들이 Iterable을 상속 받고 있다. Iterable를 상속받으면 Iterator로 모든 원소들을 돌며 값들을 리턴시킬 수 있다. 대표적인 고차함수 메서드를 몇 가지 정리하려고 한다.

1. map

map은 가장 기본적인 고차함수이다. map은 단순하게 인자로 받은 함수를 컬렉션 순회하면서 각각 실행시키는 일을 한다.

기본적인 예제이다. map에서 triple을 인자로 받아 실행시키는 함수이다. 즉, 인자로 받은 메서드를 컬렉션 내 모든 원소에 대하여 실행시키는 일을 한다.

2. flatMap

flatMapflatten이라는 메서드와 map 메서드가 함께 실행되는 효과를 가진 메서드이다.

flatten
flatten은 내포 단계를 하나 줄여 내포된 리스트의 원소를 상위의 리스트로 옮겨주는 역할을 한다.

위와 같이 2차원 리스트였는데 내부 리스트의 원소를 상위의 리스트로 옮겨 1차원 리스트로 만들었다.


위와 같이 리스트 한 단계를 옮겨주는 역할을 한다.

3. zipWithIndex

zipWithIndex는 메서드명처럼 리스트 내부의 값과 인덱스를 튜플로 묶어주는 역할을 하는 메서드이다.

4. groupBy

groupBy는 인자로 준 함수를 기준으로 묶는다. map과 주로 사용한다.

여러 Map들이 있고, Map 안에 다양한 데이터들이 들어있다. 이때, 각 map에서 기준이 되는 인자를 설정해준다.
위의 예시의 경우 날짜를 기준으로 HashMap이 생성된 후, List로 해당하는 Map들이 묶인 것을 볼 수 있다.

0개의 댓글