처음배우는엘릭서프로그래밍
10. 컬렉션 다루기 - Enum과 Stream
이 장에서 살펴볼 내용은 다음과 같다.
-
Enum모듈 -
Stream모듈 -
Collectable프로토콜 - 컴프리헨션 문
엘릭서에서는 ‘컬렉션’으로 취급되는 타입이 여러 가지 있다. 앞서 본 리스트나 맵은 물론이고 범위, 파일, 심지어는 함수도 컬렉션으로 생각할 수 있다. 24장에서 프로토콜을 소개하면서 언급하겠지만 직접 정의해 사용할 수도 있다.
물론 각 타입은 내부 구현이 모두 다르지만 공통점이 있다. 순회 탐색할 수 있다는 점이다. 그중 일부에 항목을 추가할 수도 있다.
그중 일부는 항목을 추가할 수도 있다. 이렇게 순회 가능한 타입들을 기술적으로는 Enumerable 프로토콜을 구현했다고 한다.
엘릭서에는 순회 함수를 모아둔 모듈이 두 가지 있는데 대표적으로 Enum 모듈이 있다. 안 쓰는 곳을 찾기 힘들 정도이니 반드시 자세히 알아두자.
그리고 Stream 모듈을 사용하면 컬렉션을 지연(lazily) 계산할 수 있다. 이는 값이 필요할 때만 계산한다는 의미이며, 자주 사용하지는 않지만 필요할 때는 매우 유용하다.
각 모듈이 제공하는 모든 API 목록을 이 책에 싣지는 않았다. 정확하면서도 최신 정보를 반영한 목록을 인터넷에서 확인할 수 있다. 대신 이 책에서는 일반적인 쓰임새를 소개하며, 자세한 내용은 직접 문서를 찾아보기를 권한다(이 모듈을 잘 알면 엘릭서를 훨씬 잘 사용할 수 있다).