자바스크립트에서 함수 커링(Currying)의 사용 예시는 어떤 것이 있나요?

아래는 함수 커링의 사용 예시입니다.

// 고정된 인자를 갖는 함수 정의
function add(a) {
  return function(b) {
    return a + b;
  }
}

// 함수 커링된 함수
const addFive = add(5);
console.log(addFive(3)); // 출력: 8

const addTen = add(10);
console.log(addTen(7)); // 출력: 17

위의 예시에서 add 함수는 인자 a를 받아들이고, 내부에서 다른 함수를 반환합니다. 반환된 함수는 인자 b를 받아들이고, a + b의 결과를 반환합니다.

addFiveaddTenadd 함수를 커링하여 생성된 새로운 함수들입니다. addFivea가 5로 고정된 상태에서 b만 받아들이는 함수이며, addTena가 10으로 고정된 상태에서 b만 받아들이는 함수입니다.

이렇게 커링된 함수들은 한 번에 하나의 인자만 받아들이기 때문에, 필요한 시점에 인자를 부분적으로 고정시켜 함수를 호출할 수 있는 장점을 가지고 있습니다.