arrow-core-data / arrow.core / kotlin.sequences.Sequence / rightPadZip
fun <A, B, C>
Sequence
<A>.rightPadZip(other:
Sequence
<B>, fa: (A, B?) -> C):
Sequence
<C>
Returns a Sequence containing the result of applying some transformation (A, B?) -> C
on a zip, excluding all cases where the left value is null.
Example:
import arrow.core.rightPadZip
//sampleStart
val left = sequenceOf(1, 2).rightPadZip(sequenceOf(3)) { l, r -> l + (r?:0) } // Result: [4, 2]
val right = sequenceOf(1).rightPadZip(sequenceOf(3, 4)) { l, r -> l + (r?:0) } // Result: [4]
val both = sequenceOf(1, 2).rightPadZip(sequenceOf(3, 4)) { l, r -> l + (r?:0) } // Result: [4, 6]
//sampleEnd
fun main() {
println("left = $left")
println("right = $right")
println("both = $both")
}
fun <A, B>
Sequence
<A>.rightPadZip(other:
Sequence
<B>):
Sequence
<
Pair
<A, B?>>
Returns a SequencePairA,B? containing the zipped values of the two sequences with null for padding on the right.
Example:
import arrow.core.rightPadZip
//sampleStart
val padRight = sequenceOf(1, 2).rightPadZip(sequenceOf("a")) // Result: [Pair(1, "a"), Pair(2, null)]
val padLeft = sequenceOf(1).rightPadZip(sequenceOf("a", "b")) // Result: [Pair(1, "a")]
val noPadding = sequenceOf(1, 2).rightPadZip(sequenceOf("a", "b")) // Result: [Pair(1, "a"), Pair(2, "b")]
//sampleEnd
fun main() {
println("left = $left")
println("right = $right")
println("both = $both")
}
Do you like Arrow?
✖