1 | import { IterableX } from './iterablex';
|
2 | class GenerateIterable extends IterableX {
|
3 | constructor(initialState, condition, iterate, resultSelector) {
|
4 | super();
|
5 | this._initialState = initialState;
|
6 | this._condition = condition;
|
7 | this._iterate = iterate;
|
8 | this._resultSelector = resultSelector;
|
9 | }
|
10 | *[Symbol.iterator]() {
|
11 | for (let i = this._initialState; this._condition(i); i = this._iterate(i)) {
|
12 | yield this._resultSelector(i);
|
13 | }
|
14 | }
|
15 | }
|
16 | export function generate(initialState, condition, iterate, resultSelector) {
|
17 | return new GenerateIterable(initialState, condition, iterate, resultSelector);
|
18 | }
|
19 |
|
20 |
|