#4: пример каррированной функции на языке Kotlin.

Приветствую читатель!

Функцию от нескольких аргументов, где область значений является множеством функций называют каррированной, иными словами 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"
                }
            }
        }
    }