고차 함수
고차 함수(Higher-order function)란 다른 함수를 인자로 받거나, 함수를 반환하는 함수를 의미합니다.
고차 함수는 함수형 프로그래밍에서 핵심적인 개념 중 하나로, 함수를 이용한 추상화를 가능하게 합니다.
고차 함수를 사용하면 코드를 간결하게 작성할 수 있고, 코드의 재사용성이 높아집니다.
일급 객체(First-class citizen)란 프로그래밍 언어에서 어떤 값이나 객체가 다음과 같은 조건을 충족할 때를 말합니다:
- 변수에 할당될 수 있다.
- 함수의 인자로 전달될 수 있다.
- 함수의 반환값으로 사용될 수 있다.
- 자료 구조에 저장될 수 있다.
함수형 프로그래밍 언어에서는 함수를 일급 객체로 취급합니다.
이 말은 함수를 변수에 할당하거나, 다른 함수의 인자로 전달하거나, 반환값으로 사용할 수 있다는 것을 의미합니다.
일급 객체로서의 함수가 가능하게 하는 고차 함수는 함수형 프로그래밍의 중요한 특징 중 하나입니다.
고차 함수와 일급 객체 사이의 관계를 이해하기 위해 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 |