Add samples for flatten, unzip functions
This commit is contained in:
committed by
Abduqodiri Qurbonzoda
parent
41d5615608
commit
36984009e9
@@ -242,6 +242,32 @@ class Sequences {
|
|||||||
assertPrints(even, "[0, 2, 8, 34]")
|
assertPrints(even, "[0, 2, 8, 34]")
|
||||||
assertPrints(odd, "[1, 1, 3, 5, 13, 21]")
|
assertPrints(odd, "[1, 1, 3, 5, 13, 21]")
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Sample
|
||||||
|
fun flattenSequenceOfSequences() {
|
||||||
|
val sequence: Sequence<Int> = generateSequence(1) { it + 1 }
|
||||||
|
val sequenceOfSequences: Sequence<Sequence<Int>> = sequence.map { number ->
|
||||||
|
generateSequence { number }.take(number)
|
||||||
|
}
|
||||||
|
|
||||||
|
assertPrints(sequenceOfSequences.flatten().take(10).toList(), "[1, 2, 2, 3, 3, 3, 4, 4, 4, 4]")
|
||||||
|
}
|
||||||
|
|
||||||
|
@Sample
|
||||||
|
fun flattenSequenceOfLists() {
|
||||||
|
val sequence: Sequence<String> = sequenceOf("123", "45")
|
||||||
|
val sequenceOfLists: Sequence<List<Char>> = sequence.map { it.toList() }
|
||||||
|
|
||||||
|
assertPrints(sequenceOfLists.flatten().toList(), "[1, 2, 3, 4, 5]")
|
||||||
|
}
|
||||||
|
|
||||||
|
@Sample
|
||||||
|
fun unzip() {
|
||||||
|
val result = generateSequence(0 to 1) { it.first + 1 to it.second * 2 }.take(8).unzip()
|
||||||
|
|
||||||
|
assertPrints(result.first.toList(), "[0, 1, 2, 3, 4, 5, 6, 7]")
|
||||||
|
assertPrints(result.second.toList(), "[1, 2, 4, 8, 16, 32, 64, 128]")
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
@@ -76,6 +76,8 @@ public fun <T> Sequence<T>.ifEmpty(defaultValue: () -> Sequence<T>): Sequence<T>
|
|||||||
* Returns a sequence of all elements from all sequences in this sequence.
|
* Returns a sequence of all elements from all sequences in this sequence.
|
||||||
*
|
*
|
||||||
* The operation is _intermediate_ and _stateless_.
|
* The operation is _intermediate_ and _stateless_.
|
||||||
|
*
|
||||||
|
* @sample samples.collections.Sequences.Transformations.flattenSequenceOfSequences
|
||||||
*/
|
*/
|
||||||
public fun <T> Sequence<Sequence<T>>.flatten(): Sequence<T> = flatten { it.iterator() }
|
public fun <T> Sequence<Sequence<T>>.flatten(): Sequence<T> = flatten { it.iterator() }
|
||||||
|
|
||||||
@@ -83,6 +85,8 @@ public fun <T> Sequence<Sequence<T>>.flatten(): Sequence<T> = flatten { it.itera
|
|||||||
* Returns a sequence of all elements from all iterables in this sequence.
|
* Returns a sequence of all elements from all iterables in this sequence.
|
||||||
*
|
*
|
||||||
* The operation is _intermediate_ and _stateless_.
|
* The operation is _intermediate_ and _stateless_.
|
||||||
|
*
|
||||||
|
* @sample samples.collections.Sequences.Transformations.flattenSequenceOfLists
|
||||||
*/
|
*/
|
||||||
@kotlin.jvm.JvmName("flattenSequenceOfIterable")
|
@kotlin.jvm.JvmName("flattenSequenceOfIterable")
|
||||||
public fun <T> Sequence<Iterable<T>>.flatten(): Sequence<T> = flatten { it.iterator() }
|
public fun <T> Sequence<Iterable<T>>.flatten(): Sequence<T> = flatten { it.iterator() }
|
||||||
@@ -100,6 +104,8 @@ private fun <T, R> Sequence<T>.flatten(iterator: (T) -> Iterator<R>): Sequence<R
|
|||||||
* *second* list is built from the second values of each pair from this sequence.
|
* *second* list is built from the second values of each pair from this sequence.
|
||||||
*
|
*
|
||||||
* The operation is _terminal_.
|
* The operation is _terminal_.
|
||||||
|
*
|
||||||
|
* @sample samples.collections.Sequences.Transformations.unzip
|
||||||
*/
|
*/
|
||||||
public fun <T, R> Sequence<Pair<T, R>>.unzip(): Pair<List<T>, List<R>> {
|
public fun <T, R> Sequence<Pair<T, R>>.unzip(): Pair<List<T>, List<R>> {
|
||||||
val listT = ArrayList<T>()
|
val listT = ArrayList<T>()
|
||||||
|
|||||||
Reference in New Issue
Block a user