Since Ruby 2.0,
Enumerator::Lazy has existed. It’ll let you enumerate over a list of values, like this:
That’s not so spectacular, though, and iterating over 10,000 values isn’t particularly unusual. The
#lazy method becomes really useful when we’re dealing with huge enumerations:
That first line never finishes, because
#map can never finish iterating over the infinite range. So, if you’re looking to work with a collection, but you don’t need to access the whole thing at once, then
#lazy is a good way forward. Parsing huge files is a nice example.