자바스크립트에서 Currying을 사용하여 함수의 파라미터를 어떻게 필터링할 수 있나요?

Currying을 사용하여 함수의 파라미터를 필터링하는 과정을 예제를 통해 살펴보겠습니다.

// Currying을 사용하여 숫자를 필터링하는 함수
const filterNumbers = (min, max) => {
  return (value) => {
    if (value >= min && value <= max) {
      console.log(`${value}${min}부터 ${max} 사이 입니다.`);
    } else {
      console.log(`${value}${min}부터 ${max} 사이가 아닙니다.`);
    }
  };
};

// 함수의 일부 파라미터를 부분 적용하여 새로운 함수 생성
const filterNumbersBetween = filterNumbers(0, 10);

// 새로운 함수를 사용하여 파라미터를 필터링
filterNumbersBetween(5);  // 출력: 5은 0부터 10 사이 입니다.
filterNumbersBetween(15); // 출력: 15은 0부터 10 사이가 아닙니다.

위의 예제에서 filterNumbers 함수는 minmax 두 개의 파라미터를 받습니다. filterNumbersBetween 함수는 filterNumbers 함수를 호출하면서 일부 파라미터값을 부분 적용하여 생성됩니다. 이제 filterNumbersBetween 함수를 사용하여 숫자를 필터링할 수 있습니다.

Currying을 이용하면 함수의 파라미터를 필터링하지 않고도 filterNumbersBetween 함수를 다른 곳에서 재사용할 수 있습니다. 이러한 유연성은 코드를 간결하고 재사용 가능하게 만들어주며, 함수의 파라미터를 동적으로 제어할 수 있는 장점이 있습니다.

#javascript #currying