자바스크립트에서 Currying을 사용하여 함수의 파라미터를 어떻게 검증할 수 있나요?
먼저, Currying을 구현하기 위해 curry
함수를 작성해야 합니다. 이 함수는 원본 함수와 함께 파라미터를 받아 새로운 커링 함수를 반환합니다. 이 커링 함수는 내부적으로 받은 파라미터를 검증하고, 유효한 경우에만 원본 함수를 실행합니다.
function curry(fn, ...args) {
return function curried(...newArgs) {
// 새로운 파라미터와 기존 파라미터를 합침
const combinedArgs = [...args, ...newArgs];
// 검증 로직을 구현
if (combinedArgs.length < fn.length) {
// 파라미터가 부족한 경우 커링 함수를 반환하여 다음 파라미터를 기다림
return curry(fn, ...combinedArgs);
} else {
// 모든 파라미터가 준비된 경우 원본 함수를 실행
return fn(...combinedArgs);
}
};
}
이제 위에서 작성한 curry
함수를 사용하여 파라미터를 검증하는 예제를 살펴보겠습니다.
function multiply(a, b) {
return a * b;
}
const multiplyCurried = curry(multiply);
const double = multiplyCurried(2);
console.log(double(4)); // Output: 8
const triple = multiplyCurried(3);
console.log(triple(5)); // Output: 15
위의 예제에서 multiply
함수는 두 개의 파라미터를 곱하여 결과를 반환하는 간단한 예시입니다. curry
함수를 사용하여 multiply
함수를 올바르게 커링한 후, 각각의 커링 함수를 사용하여 원하는 값을 계산할 수 있습니다.
이러한 방식으로 Currying을 사용하여 함수의 파라미터를 검증할 수 있습니다. 커링을 활용하면 함수의 재사용성과 유연성을 높일 수 있으며, 파라미터의 검증과 관련된 로직을 중복해서 작성하지 않아도 됩니다.