자바스크립트에서 Currying을 사용하여 함수의 파라미터를 어떻게 추출할 수 있나요?
먼저, Currying을 사용하여 파라미터를 추출할 함수를 생성해보겠습니다. 아래 예시 코드를 확인해주세요.
function curry(fn) {
return function curried(...args) {
if (args.length >= fn.length) {
return fn(...args);
} else {
return function(...newArgs) {
return curried(...args, ...newArgs);
}
}
};
}
위 코드에서 curry
함수는 Currying을 적용할 함수를 인자로 받아 새로운 Curried 함수를 반환합니다. 반환된 curried
함수는 모든 인자가 제공될 때 원래 함수를 호출하고, 그렇지 않은 경우에는 새로운 인자를 받아 다시 curried
함수를 반환하는 방식으로 동작합니다.
이제 예시로 Currying을 사용하여 파라미터를 추출하는 함수를 만들어보겠습니다.
function add(a, b, c) {
return a + b + c;
}
const curriedAdd = curry(add);
const addWith2 = curriedAdd(2);
const addWith2And3 = addWith2(3);
const result = addWith2And3(4); // 결과: 9
console.log(result);
위 예시에서 add
함수는 총 3개의 파라미터를 받아 덧셈 연산을 수행하는 함수입니다. curry
함수를 사용하여 add
함수를 Curried 함수로 변환한 뒤, Curried 함수를 여러 번 호출하여 파라미터를 하나씩 추출하고 최종적으로 원하는 결과를 얻을 수 있습니다.
Currying은 파라미터가 일부만 제공되는 상황에서 특히 유용합니다. 고차 함수를 작성하거나, 함수형 프로그래밍 패턴을 사용하여 코드를 작성할 때 Currying을 활용하면 코드의 가독성과 재사용성을 크게 향상시킬 수 있습니다.
#Currying #자바스크립트