В этом сообщении .
val a = Some(7)
val b = Some(9)
Applicative[Option].ap2(Some(add))(a,b)
я видел scala-код, используя cats . И я попытался перенести этот код в kotlin и стрелку, как показано ниже.
Option.applicative()
.tupled(Some(7), Some(9))
.ap(Some(::add))
// works but dirty
fun add(tuple: Tuple2<Int, Int>): Int = tuple.a + tuple.b
// not work, compilation error
// fun add(a: Int, b: Int): Int = a + b
Как вы заметили, Tuple2
должен быть указан в сигнатуре функции add
.Я искал официальный документ стрелки, но нет такой функции apN
, как ap2, ap3, ap4.
Можно ли использовать вторую функцию, которая не включает Tuple2
type?