[javascript] 함수의 커링

함수의 커링(currying)은 여러 개의 인자를 가진 함수인자 하나씩 받는 함수들로 변환하는 것입니다. 이를 통해 함수를 더 이해하기 쉽고 재사용하기 쉽도록 만들 수 있습니다.

커링의 예시

다음은 커링을 사용하여 두 개의 숫자를 더하는 함수를 구현한 예시입니다.

// 커링을 사용하지 않은 덧셈 함수
function add(x, y) {
  return x + y;
}

// 커링을 사용하여 덧셈 함수를 변형
function curriedAdd(x) {
  return function(y) {
    return x + y;
  };
}

위의 curriedAdd 함수는 첫 번째 인자 x를 받고, 그 후에 두 번째 인자 y를 받는 함수를 반환합니다.

커링의 장점

커링을 사용하면 부분 적용(partial application)을 통해 함수의 재사용성을 증가시킬 수 있습니다. 또한 일부 인자로 이미 커링된 함수를 만들어두고, 나중에 나머지 인자를 추가하여 실행할 수 있습니다.

예를 들어, 위에서 만든 curriedAdd 함수를 사용하여 두 숫자를 더하는 새로운 함수를 만들 수 있습니다.

var addTwo = curriedAdd(2);
console.log(addTwo(3)); // 5

결론

커링을 이용하면 함수를 더 모듈화하고 재사용하기 쉽게 만들 수 있습니다. 부분 적용을 통해 필요한 시점에 함수를 완성하여 실행할 수 있는 유연성을 제공합니다. 따라서 커링은 자바스크립트에서 함수형 프로그래밍을 구현하는데 유용한 기술 중 하나입니다.

참고자료: MDN Web Docs