Skip to content

Instantly share code, notes, and snippets.

@ryanzyy
Created March 9, 2017 08:10
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ryanzyy/756adb4c380be9f91a36fa76caf69327 to your computer and use it in GitHub Desktop.
Save ryanzyy/756adb4c380be9f91a36fa76caf69327 to your computer and use it in GitHub Desktop.
Get Prime Numbers using JavaScript Generator [ECMAScript]
function* from(i) { while (true) { yield i; i++; } }
function* genFilter(gen, cond) {
for (let e of gen) { if (cond(e)) yield e; }
}
function* prime(gen) {
let head = gen.next().value;
yield head;
yield* prime(genFilter(gen, (x) => x % head !== 0));
}
function* take(gen, num) {
let i = 0;
while (i < num) {
yield gen.next().value;
i++;
}
}
let primes = prime(from(2));
console.log(...take(primes, 10));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment