我写了这个愚蠢的tuplize
函数:
fun foo(x: Int, y: Int) = 3 * x + 2 * y + 1
fun <T, U, R> tuplize(f: (T, U) -> R): ((Pair<T, U>) -> R) = { (a, b): Pair<T, U> -> f(a, b) }
val xs = listOf(Pair(1, 2), Pair(42, 23))
val f = tuplize(::foo)
val ys = xs.map(f)
它是有效的,但我想arrow kt已经有了一些不错的内置程序,我就是找不到它。你能帮我吗?:(
(当然,我可以只使用val ys = xs.map { (a, b) -> foo(a, b) }
,但在这个例子中,目标是用无点风格来表达它。(
arrow过去在旧版本中有这样的实用程序函数(检查https://github.com/arrow-kt/arrow-core/blob/master/arrow-syntax/src/main/kotlin/arrow/syntax/function/tupling.kt)
然而,它们已被弃用,并已被删除