How can I get a lazy array in Ruby?
In Haskell, I can talk about [1..], which is an infinite list, lazily generated as needed. I can also do things like iterate (+2) 0, which applies whatever function I give it to generate a lazy list. In this case, it would give me all even numbers.
I’m sure I can do such things in Ruby, but can’t seem to work out how.
With Ruby 1.9 you can use the Enumerator class. This is an example from the docs:
Also, this is a nice trick:
This one only works for consecutive values though.