자바스크립트에서 Currying을 사용하여 함수의 인자를 어떻게 정의할 수 있나요?
Currying의 핵심은 함수를 인자 하나씩 받는 중첩된 함수들의 시퀀스로 변환하는 것입니다.
예를 들어, 두 수를 더하는 함수를 Currying을 사용하여 정의해보겠습니다.
function add(a) {
return function(b) {
return a + b;
};
}
위의 코드에서, add
함수는 인자 a
를 받고, 내부에서 또 다른 함수를 반환합니다. 이 내부 함수는 인자 b
를 받고, a
와 b
를 더한 값을 반환합니다.
이제 Currying된 함수 add
를 사용해보겠습니다.
const addTwo = add(2);
console.log(addTwo(3)); // 5
위의 코드에서, add
함수에 인자 2
를 전달하여 반환된 함수를 addTwo
상수에 할당합니다. 그리고 이 addTwo
함수에 인자 3
을 전달하여 실행하면 2 + 3
의 결과인 5
가 출력됩니다.
이처럼 Currying을 사용하면 함수를 조합하고 재사용할 수 있으며, 좀 더 유연하고 모듈화된 코드를 작성할 수 있습니다.
#javascript #currying