자바스크립트에서 Currying을 사용하여 함수의 결과를 어떻게 체이닝할 수 있나요?
Currying은 함수를 여러 개의 인자 대신에 하나의 인자만 받는 여러 개의 중첩 함수로 바꾸는 프로그래밍 기법입니다. 이를 사용하면 함수를 체이닝하여 여러 단계에서 작업을 수행할 수 있습니다.
// Currying을 사용하여 함수 체이닝하기
function add(x) {
return function(y) {
return x + y;
};
}
const addFive = add(5);
const result = addFive(3);
console.log(result); // 8
위의 예제에서 add
함수는 x
라는 매개변수를 받는 함수를 반환합니다. 반환된 함수는 y
라는 매개변수를 받아 x + y
의 결과를 반환합니다. 따라서 addFive
는 x
에 5를 전달한 새로운 함수이며, 이 함수는 y
에 3을 전달받아 8을 반환합니다.
// 함수 체이닝 예제
function multiply(x) {
return function(y) {
return x * y;
};
}
const multiplyTwo = multiply(2);
const multiplyThree = multiply(3);
const result1 = multiplyTwo(4);
const result2 = multiplyThree(4);
console.log(result1); // 8
console.log(result2); // 12
위의 예제에서는 multiply
함수를 정의하고 multiplyTwo
와 multiplyThree
라는 두 개의 Currying된 함수를 만들었습니다. 이 두 함수는 각각 x
에 2와 3을 전달받아 곱셈 연산을 수행합니다. 따라서 result1
은 2 * 4인 8을 반환하고 result2
는 3 * 4인 12를 반환합니다.
Currying을 사용하면 함수 체이닝을 통해 여러 가지 작업을 연속적으로 수행할 수 있으며, 코드의 가독성과 재사용성을 향상시킬 수 있습니다.
#javascript #currying