spica
Version:
Supervisor, Coroutine, Channel, select, AtomicPromise, Cancellation, Cache, List, Queue, Stack, and some utils.
16 lines (14 loc) • 449 B
text/typescript
import { Sequence } from '../../core';
import { compose } from '../../../../helper/compose';
compose(Sequence, class <a, z> extends Sequence<a, z> {
public override extract(): a[] {
const acc: a[] = [];
let iter = () => this.iterate();
while (true) {
const thunk = iter();
if (!Sequence.isIterable(thunk)) return acc;
acc.push(Sequence.Thunk.value(thunk));
iter = Sequence.Thunk.iterator(thunk);
}
}
});