자료 처리를 수학적 함수의 계산으로 취급하고 상태와 가변 데이터를 멀리하는 프로그래밍 패러다임의 하나이다.
순수함수는 함수형 프로그래밍에 필요한 개념으로써 두가지의 조건을 만족해야한다.
순수한 함수(pure function)란, 부작용(side-effect)이 없는 함수, 즉, 함수의 실행이 외부에 영향을 끼치지 않는 함수를 뜻한다. 따라서 순수한 함수는 스레드 안전하고, 병렬적인 계산이 가능하다. 또한 같은 입력에는 같은 출력을 해야한다.
...
객체지향 프로그래밍과 함수형 프로그래밍이 가지는 차이점은 설계의 관점이 다르다는 점이다. 객체지향은 "객체" 중심의 설계를 하는 반면 함수형은 "함수" 중심의 설계를 한다는 것이다.
아래는 OOP와 FP으로 만든 동일한 코드이다.
OOP
function Person(arg) { this.name = arg; this.setName = function(value) { this.name = value; } } const me = new Person("Anonymous"); me.setName("칸정우");
FP
function setName(me, arg) { me.name = arg } const me = {name:"Anonymous"} setName(me, "칸정우");