What is functional programming? - 1
함수형 프로그래밍
프로그램을 오직 순수 함수(pure function) 들로만, 부수효과(side effect) 가 없는 함수들로만 구축한다는 것.
부수효과(side effect) 란 그냥 결과를 돌려주는 것 이외의 어떤 일을 수행하는 함수를 말한다. 아래는 부수효과의 예시들이다.
- 변수를 수정한다
- 자료구조를 제자리에서 수정한다
- 객체의 필드를 설정한다
- 예외를 던지거나 오류를 내면서 실행을 중단한다
- 콘솔에 출력하거나 사용자의 입력을 읽어들인다
- 파일에 기록하거나 파일에서 읽어들인다
- 화면에 그린다
함수형 프로그래밍은 우리가 프로그램을 작성하는 방식에 대한 제약이지 표현 가능한 프로그램의 종류에 대한 제약은 아니다.
순수 함수들로 프로그램을 작성하면 모듈성(modularity)이 증가하고, 이 덕분에 순수 함수는 테스트, 재사용, 병렬화, 일반화, 분석이 쉽고 버그가 생길 여지가 훨씬 적다.