simon.vergauwen
04/06/2018, 9:19 AMval newFunction: (a: Int, b: Int) -> Unit = ::sum andThen ::format andThen ::printResult
infix fun <A, B, C, D> ((A, B) -> C).andThen(f: (C) -> D): (A, B) -> D = { a, b ->
f(this(a, b))
}
jtonic
04/06/2018, 9:28 AMsimon.vergauwen
04/06/2018, 9:35 AMandThen
from the snippet?
This works fine for me.
fun sum(a: Int, b: Int) = a + b
fun format(a: Int) = "Result: $a"
fun printResult(result: String) = println(result)
infix fun <A, B, C, D> ((A, B) -> C).andThen(f: (C) -> D): (A, B) -> D = { a, b ->
f(this(a, b))
}
fun main(args: Array<String>) {
(::sum andThen ::format andThen ::printResult)(4, 3)
}
jtonic
04/06/2018, 9:42 AM