자바스크립트에서 함수 커링(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의 결과를 반환합니다.
addFive와 addTen은 add 함수를 커링하여 생성된 새로운 함수들입니다. addFive는 a가 5로 고정된 상태에서 b만 받아들이는 함수이며, addTen은 a가 10으로 고정된 상태에서 b만 받아들이는 함수입니다.
이렇게 커링된 함수들은 한 번에 하나의 인자만 받아들이기 때문에, 필요한 시점에 인자를 부분적으로 고정시켜 함수를 호출할 수 있는 장점을 가지고 있습니다.