Project

General

Profile

Bug #6142

Enumerable::Lazy#zip doesn't rewind internal enumerators

Added by gregolsen (Innokenty Mikhailov) over 8 years ago. Updated over 7 years ago.

Status:
Closed
Priority:
Normal
Target version:
-
ruby -v:
ruby 2.0.0dev (2012-03-14 trunk 35013) [x86_64-linux]
Backport:
[ruby-core:43273]

Description

All enumerables passed to Enumerable::Lazy#zip are converted into lazy enumerators.
When result evaluated - ruby iterates over this enumerators while calling #next to retrieve the next value.
But those enumerators are not rewinded:

a = (1..3).lazy.zip('a'..'z')
a.to_a #=> 1, "a"], [2, "b"], [3, "c"
a.to_a #=> 1, "d"], [2, "e"], [3, "f"

I believe that is not the desired behavior here and a.to_a should always return the same value.


Files

lazy_zip_to_a.diff (1.14 KB) lazy_zip_to_a.diff shugo (Shugo Maeda), 03/16/2012 12:03 PM

Also available in: Atom PDF