Приветствую читатель!
Функцию от нескольких аргументов, где область значений является множеством функций называют каррированной, иными словами f(x)(y) – это каррированная форма функции f(x,y). Ее польза в том, что каррированную функцию можно применять частично: сначала для первого аргумента, вернув функцию, можно далее ее использовать и для второго.
Листинг из книги: Пьер-Ив Симон: Волшебство Kotlin
Kotlin
fun main() {
// return a, b, c, d
println( curried<String, String, String, String>()("a")("b")("c")("d") )
}
fun <A, B, C, D> curried() =
{ a: A ->
{ b: B ->
{ c: C ->
{ d: D ->
"$a, $b, $c, $d"
}
}
}
}