자바스크립트에서 Currying을 사용하여 함수의 일부 파라미터를 변경하는 방법은 무엇인가요?

예를 들어, 다음과 같은 함수가 있다고 가정해봅시다:

function add(a, b, c) {
  return a + b + c;
}

위 함수를 Currying을 사용하여 첫 번째 파라미터 a를 설정한 새로운 함수를 만들고 싶다면, 다음과 같이 할 수 있습니다:

function curryAdd(a) {
  return function(b, c) {
    return a + b + c;
  }
}

var add5 = curryAdd(5);
console.log(add5(2, 3)); // 5 + 2 + 3 = 10

위 예제에서 curryAdd 함수를 사용하여 add5 함수를 생성하였습니다. curryAdd(5)를 호출하면, 내부에서 반환되는 익명 함수가 a의 값을 5로 갖게됩니다. 이후 add5를 호출할 때는 bc를 전달하면서, a에는 이미 5가 설정되어있기 때문에 덧셈 연산을 수행할 수 있습니다.

이렇게 Currying을 사용하면 특정한 파라미터를 이미 설정한 함수를 생성하고, 나중에 필요에 따라 추가 파라미터를 전달하여 호출할 수 있습니다.