// version 1.0.6 fun f(x: Int): Int = x * x fun g(x: Int): Int = x + 2 fun compose(f: (Int) -> Int, g: (Int) -> Int): (Int) -> Int = { f(g(it)) } fun main(args: Array) { val x = 10 println(compose(::f, ::g)(x)) }