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

예를 들어, 두 개의 숫자를 더하는 함수를 currying을 사용하여 구현해보겠습니다.

function add(x) {
  return function(y) {
    return x + y;
  }
}

const addTwo = add(2);
console.log(addTwo(3)); // 결과: 5

위의 코드에서 add 함수는 한 개의 인수 x를 받고, 또 다른 함수를 반환합니다. 이 반환된 함수는 add 함수의 인수 x와 더해진 값을 반환합니다.

add 함수를 호출할 때 2를 인수로 전달하여 addTwo 함수를 생성합니다. 그리고 addTwo 함수를 호출할 때 3을 인수로 전달하면 2 + 3의 결과인 5가 반환됩니다.

Currying을 사용하여 함수를 조합하면 함수의 재사용성을 높일 수 있습니다. 예를 들어, 위의 add 함수를 이용하여 다른 함수들을 만들 수 있습니다.

const addFive = add(5);
console.log(addFive(2)); // 결과: 7

const addTen = add(10);
console.log(addTen(5)); // 결과: 15

위의 예제에서 addFive 함수와 addTen 함수를 add 함수를 기반으로 만들었습니다. 이렇게 currying을 활용하면 코드의 중복을 피하고 함수를 재사용할 수 있습니다.

Currying은 자바스크립트에서 함수 조합을 강력하게 지원하는 기법 중 하나입니다. 함수형 프로그래밍에서 많이 사용되며, 코드의 가독성과 유지보수성을 높일 수 있습니다.

#Currying #자바스크립트