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

아래 예제 코드를 살펴보겠습니다. (JavaScript)

// 숫자 배열과 필터링 함수를 인자로 받는 curryFilter 함수 정의
function curryFilter(arr, filterFunc) {
  // 중간 단계의 함수를 반환하는 함수 정의
  return function() {
    // 인자로 받은 filterFunc 함수를 적용하여 필터링된 결과를 반환
    return arr.filter(filterFunc);
  }
}

// 숫자 배열과 짝수를 필터링하는 함수를 curriedFilter 함수에 전달하여 실행 결과 반환
const curriedFilter = curryFilter([1, 2, 3, 4, 5], num => num % 2 === 0)();
console.log(curriedFilter); // [2, 4]

위 예제에서 curryFilter 함수는 숫자 배열과 필터링 함수를 인자로 받습니다. 이후에는 중간 단계의 curriedFilter 함수를 반환합니다. curriedFilter 함수를 실행하면 필터링된 결과가 반환됩니다.

코드에서는 숫자 배열 [1, 2, 3, 4, 5]와 짝수를 필터링하는 함수 num => num % 2 === 0curryFilter 함수에 전달하여 실행 결과를 얻었습니다. 필터링된 결과는 [2, 4]입니다.

Currying을 사용하면 필터링되는 함수의 로직을 한 곳에서 관리할 수 있으며, 필요한 시점에서 실행 결과를 얻을 수 있습니다. 이를 통해 코드의 재사용성과 가독성을 향상시킬 수 있습니다.

Currying을 사용하여 함수의 실행 결과를 필터링하는 방법에 대해 알아보았습니다. 이 기술을 활용하여 코드를 조금 더 효율적이고 유연하게 구현할 수 있습니다. #JavaScript #Currying