코틀린에서 함수는 일급함수(first-class function)이다.
일급함수는 함수를 인자로 받거나 반환값으로 반환하는 것이 가능하다.
함수형 프로그래밍에서 말하는 고차함수는,
1. 함수를 매개변수로 받는 함수
2. 함수를 반환하는 함수
다음 두가지 조건 중 하나이상을 만족하면 고차함수(higher order function)라고한다.
예시
// 함수를 인자로 받는 함수
fun<R> highFunc( func: () -> R ) : R {
return func()
}
// 함수를 반환값으로 받는 함수
fun<R> highFunc1() : () -> Unit {
return { println("This is Higher Order Function") }
}
고차 함수의 장점
1. 간결하게 코드를 짜 재사용성을 높인다.
2. 기능의 확장이 쉽다.
3. 코드를 간결하게 작성할 수 있다.
참고 문헌
코틀린으로 배우는 함수형 프로그래밍 (조재용, 우명인 지음) 인사이트
728x90
반응형
'프로그래밍 > 프로그래밍언어' 카테고리의 다른 글
[4장 고차함수] 4.3 부분 적용 함수 (0) | 2021.11.30 |
---|---|
[4장 고차함수] 4.2 부분함수 (0) | 2021.11.29 |
[3장 재귀] 3.7 실전 응용 - 멱집합 구하는 함수 (0) | 2021.11.19 |
[코틀린 설치] kotlin과 kotlin-native 코드 실행 (0) | 2021.11.17 |
[3장 재귀] 3.6 상호 재귀를 꼬리 재귀로 최적화하기 (0) | 2021.11.17 |