📝 간단하게 쓰는 개발일기
함수형 코틀린
10장을 마무리했다. 펑터, 모나드, 어플리커티브라는 함수형 프로그래밍의 개념에 대해 알아봤다.
11장의 앞 부분을 공부했다. 스트림 소개, 컬렉션과 스트림, 스트림 작업, 프리미티브 스트림에 대해 공부했다.
정리
10장(책보고 정리함)
- 펑터는 변환하는 방식이나 내용을 매핑하는 것을 정의하는 타입이다.
- 펑터 타입에 대한 제네릭 인터페이스는 map 함수를 가진다.
- 모나드는 flatMap을 정의하는 펑터 타입이다.
- 어플리커티브는 어플리커티브 타입으로 래핑된 T 값을 반환하는 pure 함수와 어플리커티브 타입으로 래핑된 람다를 반환하는 ap 함수 둘을 정의하는 타입이다.
10장의 마지막에 "무서운 이름으로 많은 멋진 개념들을 다뤘지만 그 뒤에는 간단한 아이디어가 있다." 라는 말이 나오는데 나는 함수형 프로그래밍에 대한 개념이 많이 부족해서 그런지 이름 뿐만 아니라 아이디어도 무서웠다..ㅎ
10장은 조금 더 공부를 한 뒤에 다시 이해해 봐야 할 것 같다.
11장
- (책)스트림이란 여러 집합적인 작업을 수행하기 위한, 요소의 시퀀스에 대한 추상 레이어이다.
- 컬렉션의 많은 기능들이 스트림에서도 제공된다.
- 컬렉션은 데이터 구조이지만, 스트림은 데이터 구조가 아니다.
- 컬렉션은 한 번 생성한 후 계속 사용할 수 있지만, 스트림은 사용할 때 마다 새로 생성해야 한다.
- Observable은 푸시 기반이지만, 스트림은 풀 기반이다.
- 프리미티브 스트림은 스트림을 자바의 프리미티브 타입처럼 사용할 수 있게 하기 위해 만들어졌다.
- 프리미티브 스트림에는 IntStream, LongStream, DoubleStream 등이 있다.