자바스크립트에서 Currying을 사용하여 함수의 실행 결과를 어떻게 표시할 수 있나요?

Currying을 구현하기 위해 다음과 같이 함수를 작성해 볼 수 있습니다.

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

// Currying된 함수 사용
const addFive = add(5);
console.log(addFive(3)); // 8
console.log(addFive(7)); // 12

위의 예시에서 add 함수는 인자 x를 받고, 함수를 반환합니다. 반환된 함수는 인자 y를 받아 xy를 더한 값을 반환합니다. 이렇게 반환된 함수를 이용하여 add 함수를 Currying하여 사용할 수 있습니다.

먼저 addFive 변수에 add(5)를 할당하여 x값을 5로 설정합니다. 그리고 addFive 변수를 호출하여 y값인 3을 전달하면 5와 3을 더한 8이 출력됩니다. 마찬가지로 addFive 변수를 호출하여 y값인 7을 전달하면 5와 7을 더한 12가 출력됩니다.

이처럼 Currying을 사용하면 함수를 더욱 유연하게 활용할 수 있으며, 일부 인자를 미리 설정하여 코드의 중복을 줄일 수 있습니다. 또한, 이러한 패턴은 함수형 프로그래밍에서 자주 사용되며, 코드의 가독성을 향상시키는데 도움을 줄 수 있습니다.

#Currying #자바스크립트