2020. 10. 7. 09:55

* 고차 함수 (High-order Function)


 - 다른 함수를 인자로 사용하거나 함수를 결과값으로 반환하는 함수


 - 일급 객체 또는 일급 함수를 서로 주고 받을 수 있는 함수



예)


fun main( ) {

    println(highFunc({x, y -> x + y }, 10, 20)) // 람다식 함수를 인자로 넘김

}


// sum 매개변수는 함수

fun highFunc(sum: (Int, Int) -> Int, a: Int, b: Int): Int = sum(a, b) 



highFunc( ) 함수는 sum이라는 매개 변수가 있음


하지만 이 sum은 람다식 함수 형식으로 선언


즉 highFunc( ) 함수는 sum을 통해서 람다식 함수를 인자로 받아들이는 고차함수