- 수학 함수를 사용하고 부수 효과를 피하는 것이 특징인 프로그래밍 패러다임
- 부수 효과 없이 순수 함수만 사용하는 프로그래밍 스타일
- 액션
- 실행 시점이나 횟수 또는 둘 다에 의존하는 것
- 부수 효과(side-eeffects), 부수 효과가 있는 함수(side-effecting function), 순수하지 않은 함수(impure function)
- 액션 안에는 계산과 데이터, 또 가른 액션이 숨어 있을 수 있다.
- 계산
- 입력값으로 출력값을 만드는 것.
- 같은 입력값을 가지고 계산하면 항상 같은 결과값이 나옴.
- 순수 함수(pure function), 수학 함수(mathematical function)
- 데이터
- 이벤트에 대해 기록한 사실.
- 장점
- 직렬화
- 동일성 비교
- 자유로운 해석
- 단점
- 반드시 해석 필요
불변 데이터 구조를 만들기 위해 두 가지 원칙을 사용
- 카피-온-라이트(copy-on-write) 변경시 복사본을 만든다.
- 방어적 복사(defensive copy) 보관하려고 하는 데이터의 복사본을 만든다.
- 에릭 노먼드, 쏙쏙 들어오는 함수형 코딩