고차 함수 (High order function) 다른 함수를 인자로 받거나 함수를 반환하는 함수 함수 타입 val sum: (Int, Int) -> Int = { x, y -> x+y } val action: () -> Unit = { println(42) } 함수 타입을 정의하려면 함수 파라미터의 타입을 괄호 안에 넣고, 그뒤에 화살표(→)를 추가한 다음, 반환 타입을 지정하면 된다. 함수타입을 선언할 때는 반환 타입으로 반드시 명시해야 하므로 Unit을 빼먹어서는 안 된다. 반환 타입이 널이 될 수 있는 타입 var canReturnNull: (Int, Int) -> Int? = {x, y -> null} 함수 타입 전체가 널이 될 수 있는 타입 var funOrNull: ((Int, Int) ->..