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

Currying을 사용하여 함수의 실행 결과를 변형하는 방법은 다음과 같습니다.

  1. Currying을 구현하는 함수를 만듭니다. 이 함수는 원본 함수와 첫 번째 인자를 받아서 부분 적용된 함수를 반환합니다.
function curry(fn) {
  return function curried(...args) {
    if (args.length >= fn.length) {
      return fn(...args);
    } else {
      return function(...moreArgs) {
        return curried(...args, ...moreArgs);
      };
    }
  }
}
  1. 원본 함수를 정의합니다. 이 함수는 여러 개의 인자를 받을 수 있습니다.
function multiply(a, b, c) {
  return a * b * c;
}
  1. Currying된 함수를 생성합니다. 원본 함수를 currying 함수에 전달하여 부분 적용된 함수를 생성합니다.
const curriedMultiply = curry(multiply);
  1. 생성된 curried 함수를 실행합니다. 필요한 인자를 전달하여 실행할 수 있습니다.
const curriedResult = curriedMultiply(2)(3)(4);
console.log(curriedResult); // 24

Currying을 사용하면 함수를 모듈화하고 재사용성을 높일 수 있습니다. 인자를 부분적으로 적용하여 필요한 시점에 완전한 실행을 할 수 있습니다. 이를 통해 코드의 가독성과 유지 보수성을 향상시킬 수 있습니다.

#JavaScript #Currying