dave08
12/02/2024, 12:37 PMOverload resolution ambiguity. All these functions match.
public fun <A, R, S, V> zip(x: Collector<TypeVariable(A), TypeVariable(R)> /* = CollectorI<*, TypeVariable(A), TypeVariable(R)> /, y: Collector<TypeVariable(A), TypeVariable(S)> / = CollectorI<*, TypeVariable(A), TypeVariable(S)> /, combine: suspend (TypeVariable(R), TypeVariable(S)) → TypeVariable(V)): Collector<TypeVariable(A), TypeVariable(V)> / = CollectorI<*, TypeVariable(A), TypeVariable(V)> */ defined in arrow. collectors
public fun <A, R, S, V> zip(x: NonSuspendCollector<TypeVariable(A), TypeVariable(R)> /* = NonSuspendCollectorI<*, TypeVariable(A), TypeVariable(R)> /, y: NonSuspendCollector<TypeVariable(A), TypeVariable(S)> / = NonSuspendCollectorI<*, TypeVariable(A), TypeVariable(S)> /, combine: (TypeVariable(R), TypeVariable(S)) → TypeVariable(V)): NonSuspendCollector<TypeVariable(A), TypeVariable(V)> / = NonSuspendCollectorI<*, TypeVariable(A), TypeVariable(V)> */ defined in arrow. collectorswhen using them... how can I solve this? I used
Collector.nonSuspendOf
dave08
12/02/2024, 1:45 PMdave08
12/02/2024, 1:59 PMfun <A, R, S, T, V> zipNonSuspend(
x: NonSuspendCollector<A, R>,
y: NonSuspendCollector<A, S>,
z: NonSuspendCollector<A, T>,
combine: (R, S, T) -> V,
): NonSuspendCollector<A, V> = x.zip(y).zipNonSuspend(z) { (a, b), c -> combine(a, b, c) }
Alejandro Serrano.Mena
12/02/2024, 3:38 PMdave08
12/02/2024, 3:42 PMfun <T> filterCollector(filter: (T) -> Boolean) = Collector.nonSuspendOf(
supply = { mutableListOf<T>() },
accumulate = { acc, t: T -> if (filter(t)) acc.add(t) },
finish = { it }
)
val list = listOf(1, 2, 3)
val coll = zip(filterCollector<Int> { it == 1 }, filterCollector<Int> { it != 1 }, ::Pair)
dave08
12/02/2024, 3:43 PMdave08
12/08/2024, 1:56 PMAlejandro Serrano.Mena
12/08/2024, 5:16 PM