Rubyのイテレータは配列をメモリに完全に展開した後に回し始めるものばっかだからな
「ちょっとずつ取り出す」ことができてない以上小手先で何をどうやっても無意味

というわけで>>444に一票