본문 바로가기

Programming/Javascript

Javascript Currying(커링)

반응형

Currying은 함수형 프로그래밍에서 기초개념이다.

Currying은 다음과 같이 정의되고 있다.

다중 인수를 갖는 함수를 단일 인수를 갖는 함수들의 함수열로 바꾸는 것을 말한다.

 

간단하게 말해서 함수를 리턴하는 함수라고 생각하면 편할 듯 하다.

f(a, b, c)의 인자가 3개인 함수를 f(a)(b)(c)와 같이 사용할 수 있다.

 

const curry = (fn) => (a) => (b) =>fn(a,b);
const add = (a, b) =>a + b;
console.log(curry(add)("Hello")("Wolrd"));
// result: HelloWorld

 

Currying은 뒷 부분의 파라미터를 나중에 실행할 수 있다.

f(a)(b)를 실행 후 (c)는 나중에 실행 가능하다.

 

const HelloFn = curry(add)("헬로");
console.log(HelloFn("월드"));
// result: 헬로월드

 

 

참고:  커링 - 위키피디아

반응형