처음에는 함수형 프로그래밍을 단순히 ‘같은 입력값을 가지고 계산하면 항상 같은 결괏값이 나오는 프로그래밍’이라고만 알고 있었는데, 실행 시점, 횟수에도 의존한다는 사실을 새롭게 알게 되었음. 액션과 계산, 데이터 구분해서 생각 > 복잡도 : 데이터 >
함수형 프로그래머는 액션과 계산, 데이터를 구분할 줄 알아야 한다.액션 액션은 사용하기 어렵고 외부 세상에 영향을 줄 수 있지만, 꼭 써야한다.
액션은 암묵적인 입출력을 가지고 있고, 계산은 암묵적인 입출력이 없다. CHAPTER 1~3장에 의하면 액션보다는 계산이 더 안전하다는 것을 알 수 있다. 이 장에서는 액션에서 계산을 추출하는 방법을 알려준다.
이 장은 4장에서 소개한 액션에서 계산을 추출하는 방법에 대한 내용을 자세히 다루고 있다. 4장에서는 액션에서 암묵적인 입⋅출력을 제거하여 계산을 추출하라고 하였다. 좀 더 자세한 방법에 대해 알아보자.
CHAPTER 6. 변경 가능한 데이터 구조를 가진 언어에서 불변성 유지하기 함수에서 변경되는 값은 어디서 사용될지 모르기 때문에 값이 변하지 않도록 불변 데이터로 바꾸는 원칙이 필요하다. 이 장은 불변 데이터와, 변경 가능한 데이터를 불변형으로 유지할 수 있도록 하