Kotlin Higher-Order Functions

Jungwook Park
kjcoop
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 함수이다.

--

--