자바스크립트에서 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 #자바스크립트