
함수형 프로그래밍은 자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임의 하나이다.

프로그래밍 패러다임(Programming Paradigm)은 프로그래머에게 프로그래밍의 관점을 갖게하고, 결정하는 역할을 한다.
명령형 프로그래밍 : 프로그래밍의 상태와 그것을 변경시키는 구문의 관점에서 연산을 설명
선언형 프로그래밍 : 어떻게(How) 할 것인가 보다는 무엇(What)을 할 것인가를 표현
순수 함수(Pure function)
- 함수의 실행이 외부에 영향을 끼치지 않는 함수
참조 투명성(Referential transparency)
- 프로그래밍의 변경 없이 어떤 표현식을 값으로 대체할 수 있다는 의미
불변하는 데이터(Immutable Data)
- 함수 외부에서 데이터를 수정하지 않음
일급 객체(First Class Functions)
- 변수나 자료 구조안에 삽입 가능
고차 함수(High order function)
- 함수를 다루는 함수
익명 함수(Anonymous function)
- 람다식
클로저(Closure)
- 부모 함수가 실행되었더라고 부모 함수의 변수에 접근할 수 있는 내부 함수를 뜻함
모듈화(Modularity)
- 모듈화를 통해 생산성을 증가시킨다. 작은 모듈은 빠르게 작성할 수 있으며 재사용하기 용이하여 프로그램 개발 속도를 높일 수 있다.
장점
- 개발 생산성을 높일 수 있다.
단점
- 함수형 프로그래밍의 개념은 이해하기 쉽지 않다.