June 2018
Intermediate to advanced
316 pages
6h 34m
English
We can try using the buildSequence function, which looks like this:
public fun <T> buildSequence(builderAction: suspend SequenceBuilder<T>.() -> Unit): Sequence<T> = Sequence { buildIterator(builderAction) }
The buildIterator function looks as follows:
public fun <T> buildIterator(builderAction: suspend SequenceBuilder<T>.() -> Unit): Iterator<T> { val iterator = SequenceBuilderIterator<T>() iterator.nextStep = builderAction.createCoroutineUnchecked(receiver = iterator, completion = iterator) return iterator
The buildSequence function just returns an instance of the Iterator type and can be used as follows:
fun coroutinesSequenceOrder(amountOfCakes: Int) = buildSequence { val baker = Baker() (0 until amountOfCakes) ...Read now
Unlock full access