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

자바스크립트에서 Currying은 함수를 여러 개의 인자가 있는 함수로 분해하는 기술입니다. 이를 통해 함수의 인자를 그룹으로 전달하거나 일부만 전달할 수 있습니다. Currying은 함수형 프로그래밍에서 매우 유용하며, 코드의 재사용성과 가독성을 높여줍니다.

예를 들어, 다음과 같이 multiply 함수를 Currying을 사용하여 변환할 수 있습니다.

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

위의 코드에서 multiply 함수는 첫 번째 인자 a를 받는 함수를 반환합니다. 이 반환된 함수는 두 번째 인자 b를 받아 a * b의 결과를 반환합니다.

이제 Currying된 multiply 함수를 사용하여 인자를 전달할 수 있습니다.

const multiplyBy5 = multiply(5);
console.log(multiplyBy5(2)); // 결과: 10

위의 예시에서 multiplyBy5 함수는 multiply 함수에 첫 번째 인자로 5를 전달하여 반환된 함수입니다. 그리고 나서 multiplyBy5 함수에 2를 인자로 전달하여 5 * 2의 결과인 10을 얻을 수 있습니다.

이러한 방식으로 Currying을 활용하면 함수를 보다 유연하게 사용할 수 있으며, 코드의 가독성과 재사용성을 향상시킬 수 있습니다.

#javascript #currying