함수형 프로그래밍에 관해 찾다가 알게됐는데 처음보는 구조이기도하고 되게 신기하다.
f(a,b,c)처럼 단일 호출로 처리하는 함수를 f(a)(b)(c)와 같이 각각의 인수가 호출 가능한 프로세스로 호출된 후 병합되도록 변환하는 것
커링은 함수를 호출하지 않는다. 단지 변환할 뿐이다.
f의 두 개의 인수를 커링하는 헬퍼 함수 curry(f)를 생성 function curry(f) { // 커링 변환을 하는 curry(f) 함수
return function(a) {
return function(b) {
return f(a, b);
};
};
}
// usage
function sum(a, b) {
return a + b;
}
let curriedSum = curry(sum);
alert( curriedSum(1)(2) ); // 3