책에 나와있는 그림과 글들이 이해하기 편한 방식으로 전개되어서 최대한 내용을 그대로 옮겼습니다. 모든 내용을 다 옮긴것은 아니고 핵심이라고 생각하는 부분들을 이해하기 편할 정도로 옮겼습니다. 책의 내용이 정말 좋으니 꼭 구매하셔서 읽으시길 강추드립니다.
함수형 프로그래머는 액션과 계산, 데이터를 구분합니다.
액션
실행 시점과 횟수에 의존합니다.다른 말로 부수 효과, 부수 효과가 있는 함수, 순수하지 않은 함수라고 부르기도 합니다.
예) 이메일 보내기, 데이터베이스 읽기
계산
입력으로 출력을 계산합니다 다른 말고 순수 함수, 수학 함수라고 부르기도 합니다.
예) 최댓값 찾기, 이메일 주소가 올바른지 확인하기
데이터
이벤트에 대한 사실
예) 사용자가 입력한 이메일 주소, 은행 API로 읽은 달러 수량
우리가 일상에서 자주 하는 장보기에 액션과 계산, 데이터를 적용해 봅시다.
함수형 프로그래머가 아닌 프로그래머가 장보기 과정을 그린다면 아래 그림처럼 그릴 수 있습니다. 각 단계가 액션과 계산, 데이터 중 어떤 종류에 속하는지 왼쪽에 표시해 보겠습니다.
액션은 호출 시점과 횟수에 의존합니다.
모든 것이 액션이라니! 뭔가 놓친 것이 있는 것 같습니다. 계산과 같이 데이터에 대해 알아봐야 할 것 같습니다.
모든 것을 액션으로 분류하면 안 될 것 같습니다. 물론 아주 단순한 과정은 액션으로만 분류할 수 있지만 위에서 살펴본 장보기 과정은 그렇게 단순하지 않습니다. 놓친 것이 있는지 단계별로 다시 살펴봅시다.