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

다음은 Currying을 사용하여 인자를 필터링하는 예시입니다.

// Currying을 사용하여 숫자 배열에서 특정 범위의 값만을 필터링하는 함수 예시
function filterByRange(min, max) {
  return function (array) {
    return array.filter(function (item) {
      return item >= min && item <= max;
    });
  };
}

// Currying된 filterByRange 함수를 사용하여 숫자 배열을 필터링하는 예시
var numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10];
var filterRange = filterByRange(3, 7);

var filteredNumbers = filterRange(numbers);
console.log(filteredNumbers); // [3, 4, 5, 6, 7]

위 예시에서 filterByRange 함수는 minmax라는 인자를 받아 부분 적용된 함수를 반환합니다. 반환된 함수는 array라는 인자를 받아 해당 배열을 필터링하여 특정 범위에 속하는 숫자만을 반환합니다.

Currying을 사용하면 필터링 조건을 미리 정의하고, 필요한 시점에 인자를 제공하여 함수를 실행할 수 있습니다. 이를 통해 코드를 재사용하고, 보다 유연하게 함수를 조작할 수 있습니다.

#Currying #자바스크립트