[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