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

Currying을 사용하여 함수의 인자를 필수로 지정하는 예시를 살펴보겠습니다.

function multiply(a) {
  return function(b) {
    return a * b;
  };
}

const double = multiply(2); // 첫 번째 인자인 a를 2로 지정한 함수 생성
const result = double(5); // 두 번째 인자인 b를 5로 지정한 결과 값

console.log(result); // 10 출력

위의 코드에서 multiply 함수는 Currying을 사용하여 작성되었습니다. multiply 함수는 첫 번째 인자 a를 받고, 그 값을 이용하여 두 번째 인자 b를 받아서 곱한 값을 반환하는 작은 함수를 리턴합니다.

위의 코드에서 multiply(2)를 호출하여 double 함수를 생성하고, 이후에 double(5)를 호출하여 계산 결과를 얻어냅니다. 따라서 위의 코드는 2 * 5를 계산하여 결과 값인 10을 출력합니다.

Currying을 사용하면 함수의 일부 인자를 미리 지정하여 새로운 함수를 생성할 수 있습니다. 이를 통해 함수를 재사용하고 코드를 간결하게 작성할 수 있습니다.