고차 함수(higher-order function) : 함수를 파라미터로 쓰거나(클로저) 함수를 반환하는 함수
Author
siwon
Date
2024-01-10 02:52
Views
464
고차 함수(higher-order function)는 하나 이상의 함수를 매개변수로 받거나 함수를 반환할 수 있는 함수를 말합니다. 다시 말해 함수를 일급 객체로 취급하는 것이며, 이 개념은 함수형 프로그래밍에 기본적입니다.
1. **함수를 매개변수로 받기:**
고차 함수는 다른 함수를 매개변수로 받을 수 있습니다. 이는 더 유연하고 재사용 가능한 코드를 작성할 수 있게 해줍니다. 자바스크립트에서의 `map()`, `filter()`, `reduce()` 메서드는 대표적인 예입니다. 배열의 각 요소에 적용할 함수를 매개변수로 전달합니다.
```javascript
const numbers = [1, 2, 3, 4, 5];
// 고차 함수인 map의 예시
const squaredNumbers = numbers.map(num => num * num);
console.log(squaredNumbers);
// 출력: [1, 4, 9, 16, 25]
```
2. **함수를 반환하기:**
고차 함수는 함수를 반환할 수도 있습니다. 이는 클로저를 생성하거나 함수를 조립하는 데 유용합니다.
```javascript
// 고차 함수인 createMultiplier의 예시
const createMultiplier = (factor) => {
return (number) => {
return number * factor;
};
};
const double = createMultiplier(2);
console.log(double(5)); // 출력: 10
```
이 예시에서 `createMultiplier`는 인자로 받은 `factor`를 사용하여 새로운 함수를 반환하는 고차 함수입니다. 반환된 함수(`double`)는 지정된 배수로 숫자를 곱하는 데 사용됩니다.
고차 함수는 강력한 추상화 메커니즘을 제공하여 모듈화되고 유연하며 표현력 있는 코드를 작성할 수 있게 합니다. 이는 함수형 프로그래밍 언어의 중요한 특징이며, 자바스크립트 및 다른 현대적인 프로그래밍 언어에서 널리 사용되고 있습니다.