[공부 기록] JavaScript - currying
23 Feb 2020 |커링(Currying)이란?
매개변수가 여러 개인 함수를 하나의 매개변수를 갖는 함수의 체인으로 바꾸는 테크닉이다.
다른 말로 하면, 함수가 모든 매개변수를 한 번에 받는 것 대신에, 첫 번째 매개변수를 받고 새로운 함수를 리턴하고 두 번째 매개변수를 받고 새 함수를 리턴하고 세 번째, 네 번째, 결국 모든 매개변수를 받을 때까지 반복하는 것이다.
add(1, 2, 3);
를 add(1)(2)(3);
이렇게 호출할 수 있게 되는 것이다.
예를 들어서
인사하는 함수를 커링을 사용하여 만든다고 할 때 아래처럼 정의할 수 있을 것이다.
var greetCurried = function(greeting) {
return function(name) {
console.log(greeting + ", " + name);
};
};
아래처럼 매개변수에 인삿말을 넣은 함수를 먼저 선언하고 이름만 바꿔서 호출하도록 만들 수 있다.
var greetHello = greetCurried("Hello");
greetHello("Heidi"); //"Hello, Heidi"
greetHello("Eddie"); //"Hello, Eddie"
커링 테크닉을 사용하면 자주 호출되는 함수에서 중복되어 넘겨지는 매개변수 부분은 미리 값을 세팅해두고 나머지 부분에 다른 값을 넣어 재사용하기에 유용하다.
출처
https://codeburst.io/currying-in-javascript-ba51eb9778dc
https://sujinlee.me/currying-in-functional-javascript/
Comments