고차 함수는 함수를 인수로 받거나 함수를 결과로 반환하는 함수이다. 처리 규칙을 데이터처럼 전달할 수 있게 한다.
원리
순회·정렬 같은 공통 절차와 개별 판단 규칙을 분리한다. 콜백, 함수 합성, 데코레이터는 고차 함수와 연결되는 활용 방식이다.
예시
정렬 함수에 상품의 가격을 꺼내는 함수를 전달하면 정렬 절차는 재사용하면서 기준만 바꿀 수 있다.
프로그래밍 언어 | |
|---|---|
언어 | Python · Java · JavaScript · TypeScript · Rust |
주의할 점
전달한 함수가 외부 상태를 변경하거나 예외를 던질 수 있다는 점도 계약의 일부다. 함수를 받는다는 사실만으로 병렬 실행이나 순수성이 보장되지는 않는다.