자바스크립트에서 Currying을 사용하여 함수의 결과를 어떻게 다양한 형태로 변환할 수 있나요?

Currying의 기본 개념은 함수에 매개 변수를 하나씩 전달하는 것입니다. 매개 변수가 모두 전달되면 원래 함수에서 필요한 동작을 수행하고 결과를 반환합니다. 그러나 Currying을 통해 함수를 변환하면 매개 변수를 일부 전달한 새로운 함수를 생성할 수 있습니다. 이 새로운 함수는 나중에 더 많은 매개 변수를 전달할 때까지 기다리거나 곧바로 결과를 반환할 수 있습니다.

간단한 예제로 Currying을 이해해보겠습니다. 다음은 두 숫자를 더하는 기본적인 함수입니다.

function add(a, b) {
  return a + b;
}

이 함수를 Currying을 사용하여 변환하면 다음과 같이 구현할 수 있습니다.

function addCurry(a) {
  return function(b) {
    return a + b;
  }
}

이제 addCurry 함수를 사용하여 다양한 형태로 변환할 수 있습니다. 예를 들어, 첫 번째 매개 변수를 설정한 새로운 함수를 만들 수 있습니다.

const add5 = addCurry(5);
console.log(add5(3)); // 출력 결과: 8
console.log(add5(10)); // 출력 결과: 15

또는 두 개의 매개 변수를 한 번에 설정할 수도 있습니다.

console.log(addCurry(2)(4)); // 출력 결과: 6

이와 같은 방식으로 Currying을 사용하면 함수의 결과를 다양한 형태로 변환할 수 있으며, 코드의 재사용성과 유연성을 크게 향상시킬 수 있습니다.

#Currying #자바스크립트