[javascript] 함수형 커링의 예시

커링(currying)은 함수형 프로그래밍에서 사용되는 중요한 개념 중 하나입니다. 함수형 프로그래밍은 함수의 조합으로 작업을 수행하며, 커링은 함수를 다른 함수로 변환하는 과정을 말합니다.

커링을 통해 함수는 하나의 인자만을 받는 함수들의 연쇄로 분해됩니다. 이를 통해 함수의 재사용성과 모듈화가 용이해지며, 코드의 가독성도 향상됩니다.

예시: 커링을 사용한 함수 구현

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

// 커링을 사용한 함수
function curriedAdd(x) {
  return function(y) {
    return function(z) {
      return x + y + z;
    };
  };
}

// 커링된 함수 호출
const result = curriedAdd(1)(2)(3); // 결과: 6

위의 예시에서 add 함수는 세 개의 인자를 한번에 받아 더한 후 반환합니다. 반면 curriedAdd 함수는 한 번에 하나의 인자를 받아 새로운 함수를 반환하는 형태입니다. 이렇게 하나의 인자를 받는 함수들의 연쇄로 분해하여 실행하면 결과적으로 똑같은 동작을 하는 함수를 생성할 수 있습니다.

커링은 함수형 프로그래밍에서 유용하게 활용되며, JavaScript를 비롯한 많은 프로그래밍 언어에서 지원하는 기능입니다.

이러한 커링을 통해 간단하게 함수를 변형하고, 복잡한 로직을 단순화할 수 있습니다.

더 많은 정보를 원하신다면 MDN web docs를 방문해 보세요.