티스토리 뷰

고차 함수

고차 함수(Higher-order function)란 다른 함수를 인자로 받거나, 함수를 반환하는 함수를 의미합니다.
고차 함수는 함수형 프로그래밍에서 핵심적인 개념 중 하나로, 함수를 이용한 추상화를 가능하게 합니다.
고차 함수를 사용하면 코드를 간결하게 작성할 수 있고, 코드의 재사용성이 높아집니다.

일급 객체(First-class citizen)란 프로그래밍 언어에서 어떤 값이나 객체가 다음과 같은 조건을 충족할 때를 말합니다:

  1. 변수에 할당될 수 있다.
  2. 함수의 인자로 전달될 수 있다.
  3. 함수의 반환값으로 사용될 수 있다.
  4. 자료 구조에 저장될 수 있다.

함수형 프로그래밍 언어에서는 함수를 일급 객체로 취급합니다.
이 말은 함수를 변수에 할당하거나, 다른 함수의 인자로 전달하거나, 반환값으로 사용할 수 있다는 것을 의미합니다.
일급 객체로서의 함수가 가능하게 하는 고차 함수는 함수형 프로그래밍의 중요한 특징 중 하나입니다.

고차 함수와 일급 객체 사이의 관계를 이해하기 위해 Python 예제를 살펴봅시다.

 def square(x):
      return x * x  
numbers = [1, 2, 3, 4, 5] 
squared_numbers = list(map(square, numbers))  # [1, 4, 9, 16, 25]`

여기서 map 함수는 고차 함수입니다. map 함수는 square 함수를 인자로 받고, numbers 리스트의 모든 원소에 대해 square 함수를 적용한 결과를 반환합니다.
이 예제에서 함수는 일급 객체로 취급되어, square 함수가 map 함수의 인자로 전달될 수 있습니다.

이처럼 고차 함수는 일급 객체로서의 함수와 밀접한 관계가 있으며, 함수형 프로그래밍의 핵심 개념 중 하나입니다.

728x90

'Computer Science > 프로그래밍 언어론' 카테고리의 다른 글

프로그래밍 언어론 - 바인딩  (0) 2023.05.18
프로그래밍 언어론 - 변수  (0) 2023.05.18
익명 함수(Lambda)  (0) 2023.04.17
람다 대수 베타 축약  (0) 2023.04.12
프로그래밍 언어란  (0) 2023.04.11