Currying은 함수의 인자를 여러 개로 받는 대신, 각 인자를 하나씩 받는 연속된 함수를 반환하는 기법입니다. 이를 통해 함수를 더 유연하게 사용하고 결과를 편집할 수 있습니다. 이번 블로그 포스트에서는 자바스크립트에서 Currying을 사용하여 함수의 결과를 편집하는 방법에 대해 알아보겠습니다.
Currying 기본 개념 이해하기
Currying을 이해하기 위해 간단한 예제를 살펴보겠습니다. 다음은 두 개의 숫자를 더하는 함수를 Currying을 사용하여 표현한 예제입니다.
function add(x) {
return function(y) {
return x + y;
}
}
const addTwo = add(2);
console.log(addTwo(3)); // 결과: 5
위 코드에서 add
함수는 x
라는 인자를 받고, 이후에 y
라는 인자를 받는 함수를 반환합니다. addTwo
변수에 add(2)
를 할당하여 add
함수를 실행하면, x
값으로 2가 지정된 상태에서 y
값을 받는 함수가 반환됩니다. 따라서 addTwo
를 호출할 때 y
값으로 3을 전달하면 2와 3을 더한 결과인 5가 출력됩니다.
함수 결과 편집하기
Currying의 핵심은 함수의 결과를 편집하는 것입니다. 아래 예제를 통해 이를 살펴보겠습니다.
function multiply(x) {
return function(y) {
return function(z) {
return x * y * z;
}
}
}
const multiplyByTwo = multiply(2);
const multiplyByTwoAndThree = multiplyByTwo(3);
console.log(multiplyByTwoAndThree(4)); // 결과: 24
위 코드에서 multiply
함수는 x
, y
, z
세 개의 인자를 받는 Currying 함수입니다. multiplyByTwo
변수에 multiply(2)
를 할당하여 x
값으로 2가 지정된 상태에서 y
와 z
값을 받는 함수가 반환됩니다. 이후에 multiplyByTwoAndThree
변수에 multiplyByTwo(3)
을 할당하여 y
값으로 3이, z
값을 받는 함수가 반환됩니다. 마지막으로 multiplyByTwoAndThree
를 호출할 때 z
값으로 4를 전달하면 2, 3, 4를 곱한 결과인 24가 출력됩니다.
이와 같이 Currying을 사용하여 함수의 결과를 편집하면 여러 단계의 연산을 조합하여 더 유연하게 함수를 사용할 수 있습니다.
#javascript #Currying