Kotlin Higher-Order Functions
Published in
2 min readMay 20, 2018
코틀린에서는 아래와 같이 정의하고 있다.
A higher-order function is a function that takes functions as parameters, or returns a function.
함수를 인자로 받거나, 함수를 반환하면 higher-order 함수이다.
- 인자로 사용하는 경우
21~23 라인의 higherOrderFunction는 세 개의 인자를 가지고 있는데,
Int, Int, (Int, Int) -> Int 세개 인자를 가지고 있으며 맨 마지막 인자가 함수이기 때문에 higher-order 함수이다.
(Int, Int) -> Int 를 block으로 이름 붙여 함수 안에서 사용한 점이 포인트.
sum과 sum2 함수는 동일하며 인자 맨 마지막이 lambda 인 경우 괄호 밖으로 빼낼 수 있어 기술 형식만 차이가 있다.
- 반환하는 경우
9~11 라인의 higherOrderFunction2는 인자 없이 (Int, Int) -> Int 리턴 타입만 가지고 있기 때문에 higher-order 함수이다.