Из коробки нет.Но это не так сложно сделать с помощью вспомогательной функции:
fun add(a: Int, b:Int): Int {
return a + b
}
fun <A, B, C> partial2(f: (A, B) -> C, a: A): (B) -> C {
return { b: B -> f(a, b)}
}
val add1 = partial2(::add, 1)
val result = add1(2) //3
Таким образом, Partical2 принимает функцию с 2 аргументами и первым аргументом и применяет ее для получения функции с 1 аргументом.Вам нужно написать таких помощников для всех необходимых вам артиклей.
В качестве альтернативы вы можете сделать это с помощью метода расширения:
fun <A,B,C> Function2<A,B,C>.partial(a: A): (B) -> C {
return {b -> invoke(a, b)}
}
val abc: (Int) -> Int = (::add).partial(1)