함수형 프로그래밍 기법
요약
- 일급 함수란 인수로 전달하거나, 결과로 반환하거나, 자료구조에 저장할 수 있는 함수다.
- 고차원 함수란 한 개 이상의 함수를 인수로 받아서 다른 함수를 반환하는 함수다. 자바에서는 comparing, andThen, compose 등의 고차원 함수를 제공한다.
- 커링은 함수를 모듈화하고 코드를 재사용할 수 있도록 지원하는 기법이다.
- 영속 자료구조는 갱신될 때 기존 버전의 자신을 보존한다. 결과적으로 자신을 복사하는 과정이 따로 필요하지 않다.
- 자바의 스트림은 스스로 정의할 수 없다.
- 게으른 리스트는 자바 스트림보다 비싼 버전으로 간주할 수 있다. 게으른 리스트는 데이터를 요청했을 때 Supplier를 이용해서 요소를 생성한다. Supplier는 자료구조의 요소를 생성하는 역할을 수행한다.
- 패턴 매칭은 자료형을 언랩하는 함수형 기능이다. 자바의 switch문을 일반화할 수 있다.
- 참조 투명성을 유지하는 상황에서는 계산 결과를 캐시할 수 있다.
- 콤비네이터는 둘 이상의 함수나 자료구조를 조합하는 함수형 개념이다.