How can I make a ruby enumerator that does lazy iteration through two other enumerators?
问题 Let's say I have two enumerators, enum1 and enum2 that must be lazily iterated through (because they have side effects). How do I construct a third enumerator enum3 where enum3.each{|x| x} would lazily return the equivalent of enum1 + enum2 ? In my real world use case, I'm streaming in two files, and need to stream out the concatenation. 回答1: This seems to work just how I want; enums.lazy.flat_map{|enum| enum.lazy } Here's the demonstration. Define these yielding methods with side-effects;