JSFiddle - React, Tailwind, and code Playground

by brigand

JavaScript

function* positiveIntegers() {
  for (let i = 1n; true; i += 1n) {
    yield i;
  }
}

function* take(count, iter) {
  let remain = count;
  
  for (const item of iter) {
    yield item;
    remain -= 1n;
    if (remain <= 0n) {
      break;
    }
  }
}

function main() {
  for (const item of take(10n, positiveIntegers())) {
    console.log(item);
  }
}
main()