Este tipo de función acepta otras funciones como parámetros o devuelven una función.

private fun calculadora(n1: Int, n2: Int, fn: (Int, Int)->Int): Int {
    return fn(n1, n2)
}

private fun suma(x: Int, y: Int): Int {
    return x + y
}

private fun resta(x: Int, y: Int): Int {
    return x - y
}
println("La suma de 8 y 2 es: " + calculadora(8, 2, ::suma))