자바스크립트에서 Currying을 사용하여 함수의 리턴 값을 어떻게 필터할 수 있나요?
Currying은 함수를 여러 개의 인자를 받는 함수로 만드는 기술입니다. 이를 활용하여 함수의 리턴 값을 필터링하는 것도 가능합니다.
예를 들어, 다음과 같은 함수가 있다고 가정해봅시다.
function calculate(a, b, c) {
return a + b + c;
}
이 함수를 Currying을 사용하여 함께 사용하려면 아래와 같이 변경할 수 있습니다.
function calculate(a) {
return function(b) {
return function(c) {
return a + b + c;
}
}
}
Currying을 사용하면 다음과 같이 함수를 호출할 수 있습니다.
let result = calculate(1)(2)(3);
console.log(result); // 6
이제 리턴 값을 필터링하려면 Currying된 함수의 내부에서 조건문을 사용하여 원하는 값을 리턴하면 됩니다.
function calculate(a) {
return function(b) {
return function(c) {
if(a + b + c > 5) {
return a + b + c;
} else {
return 0;
}
}
}
}
위의 예시에서는 a, b, c의 합이 5보다 큰 경우에만 값을 리턴하고, 작은 경우에는 0을 리턴하도록 하였습니다.
이제 필터링된 값을 확인해보겠습니다.
let result = calculate(1)(2)(3);
console.log(result); // 6
result = calculate(1)(1)(1);
console.log(result); // 0
위의 예시에서는 calculate(1)(2)(3)을 호출한 결과값은 6이며, calculate(1)(1)(1)을 호출한 결과값은 0입니다.
Currying을 사용하여 함수의 리턴 값을 필터링하는 방법을 알아보았습니다. 이를 활용하여 함수를 조합하고 재사용 가능한 모듈을 만들 수 있습니다. #Currying #자바스크립트