- 함수형 프로그래밍이 무엇인지, 구현을 위해 필요한 도구와 전략을 이해하는 것이 중요
- 함수란 무엇인지, 그리고 함수 합성을 어떻게 하는지 알아봄
- 함수 합성은 함수형 프로그래밍의 가장 중요한 디자인 원칙
8.1 함수, 함수 어디에나 함수
먼저 함수형 프로그래밍이 객체지향 프로그래밍과 왜 그렇게 다른지 보자.
함수형 프로그래밍이란, 함수가 정말 중요하다고 여기는 프로그래밍
- 함수형 프로그래밍의 핵심은 프로그램 모든 곳에서 모든 문제를 함수로 해결한다는 점
ex) 큰 프로그램을 작은 구성 요소로 조립하고 싶다고 가정
- 객체지향에서는 구성 요소가 클래스와 객체일 것
- 함수형에서는 구성 요소가 함수임
또는 프로그램의 어떤 부분을 전달받거나, 컴포넌트 간의 결합도를 줄이고 싶을 수도 있음
- 객체지향에서는 인터페이스와 의존 주입을 사용할 것
- 함수형에서는 함수 매개변수를 받음
혹은 ‘중복을 피하라’는 원칙에 따라 여러 컴포넌트 간에 코드를 재사용하고 싶음
- 객체지향에서는 상속이나 데커레이터 패턴 같은 기술을 사용할 수 있음
- 함수형에서는 모든 재사용 가능한 코드를 함수로 만들고, 함수 합성을 통해 연결함