Skip to content

JS/SevelteKit

고차 함수(higher-order function) : 함수를 파라미터로 쓰거나(클로저) 함수를 반환하는 함수

Author
siwon
Date
2024-01-10 02:52
Views
304

고차 함수(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`)는 지정된 배수로 숫자를 곱하는 데 사용됩니다.

고차 함수는 강력한 추상화 메커니즘을 제공하여 모듈화되고 유연하며 표현력 있는 코드를 작성할 수 있게 합니다. 이는 함수형 프로그래밍 언어의 중요한 특징이며, 자바스크립트 및 다른 현대적인 프로그래밍 언어에서 널리 사용되고 있습니다.