RosettaCodeData/Task/Generator-Exponential/JavaScript/generator-exponential-2.js

21 lines
445 B
JavaScript

function* nPowerGen(n) {
let e = 0;
while (1) { e++ && (yield Math.pow(e, n)); }
}
function* filterGen(gS, gC, skip=0) {
let s = 0; // The square value
let c = 0; // The cube value
let n = 0; // A skip counter
while(1) {
s = gS.next().value;
s > c && (c = gC.next().value);
s == c ?
c = gC.next().value :
n++ && n > skip && (yield s);
}
}
const filtered = filterGen(nPowerGen(2), nPowerGen(3), skip=20);