You can replace your `integers` function with `itertools.count` (same signature but defaults to starting at 0), and `take` with `itertools.islice`.
Re:Infinite work is less work
by anandology on Thursday July 11, 2019 @08:44PM
(#20417191)
Didn't realize I could use `itertools.count`. In fact, it accepts a `start` parameter.
The `take` function is borrowed from Haskell. It feels lot more natural to say/read `take(10, primes())`, than `islice(primes(), 10)`.
perl6 -e 'my $integers := gather for 0..Inf { take $_ }; say $integers[2]'
Here is my response with the same problem solved in Python.
https://anandology.com/blog/python-is-infintely-beautiful/