자바스크립트에서 Currying을 사용하여 다른 함수를 호출하는 방법은 무엇인가요?

커리 함수를 작성하는 간단한 예제를 살펴보겠습니다. 우선 다음과 같은 add 함수가 있다고 가정해봅시다.

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

이제 커링을 사용하여 다른 함수를 호출하는 함수를 작성해보겠습니다.

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

위 코드에서 curryAdd 함수는 add 함수를 부분적으로 적용한 새로운 함수를 반환합니다. 예를 들어, curryAdd(2)를 호출하면 두 개의 인자 중 첫 번째인 a가 2로 고정된 상태가 됩니다. 이제 반환된 함수에 두 번째 인자를 전달하여 호출하면, 고정된 a와 전달된 b를 더한 결과를 반환합니다.

const addTwo = curryAdd(2);
console.log(addTwo(3)); // 5

위 예제에서 curryAdd(2)를 호출하여 add 함수의 첫 번째 인자를 2로 고정시킨 후, 반환된 함수에 3을 전달하여 호출하면 2와 3을 더한 결과인 5가 출력됩니다.

커리 함수를 사용하면 원하는 만큼 인자를 부분적으로 적용하여 다양한 함수를 생성할 수 있습니다. 이를 통해 코드의 재사용성과 유지보수성을 높일 수 있습니다.

#자바스크립트 #커리 #Currying