37 lines
598 B
JavaScript
37 lines
598 B
JavaScript
function PowersGenerator(m) {
|
|
var n=0;
|
|
while(1) {
|
|
yield Math.pow(n, m);
|
|
n += 1;
|
|
}
|
|
}
|
|
|
|
function FilteredGenerator(g, f){
|
|
var value = g.next();
|
|
var filter = f.next();
|
|
|
|
while(1) {
|
|
if( value < filter ) {
|
|
yield value;
|
|
value = g.next();
|
|
} else if ( value > filter ) {
|
|
filter = f.next();
|
|
} else {
|
|
value = g.next();
|
|
filter = f.next();
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
var squares = PowersGenerator(2);
|
|
var cubes = PowersGenerator(3);
|
|
|
|
var filtered = FilteredGenerator(squares, cubes);
|
|
|
|
|
|
|
|
for( var x = 0; x < 20; x++ ) filtered.next()
|
|
for( var x = 20; x < 30; x++ ) console.logfiltered.next());
|