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

다음은 JavaScript에서 Currying을 사용하여 함수의 결과를 정리하는 예시입니다:

function multiply(x) {
  return function(y) {
    return function(z) {
      return x * y * z;
    };
  };
}

const result = multiply(2)(3)(4);
console.log(result); // 출력: 24

위의 예시에서 multiply 함수는 한 개의 인수 x를 받아들여 함수를 반환합니다. 반환된 함수는 다시 한 개의 인수 y를 받아들여 더 깊은 수준의 함수를 반환합니다. 마찬가지로 이 함수는 한 개의 인수 z를 받아들여 최종적으로 x, y, z를 곱한 결과를 반환합니다.

이렇게 함수를 중첩하는 것은 여러 개의 인수를 필요로 하는 함수를 하나씩 호출해야 하는 번거로움을 피할 수 있습니다. 대신, 세 개의 인수를 한 번에 지정하여 호출하면서 코드를 보다 명확하고 간결하게 만들 수 있습니다.

Currying은 함수형 프로그래밍에서 유용하게 사용되는 개념이며, 함수를 조합하고 재사용할 수 있는 유연한 코드를 작성할 수 있도록 도와줍니다.

#javascript #currying