Issue #6142 has been updated by Shugo Maeda.


Thomas Sawyer wrote:
> A touch OT, but is Brian Candler being involved in the development of this? I don't know of anyone who has discussed and worked on this topic more over the years than Brian and I think it would be most prudent to seek his consul on these matters.

Any comments from Brian and others are welcome.
If there is something wrong with the current behavior, please file a ticket or send a mail to ruby-core.

----------------------------------------
Bug #6142: Enumerable::Lazy#zip doesn't rewind internal enumerators
https://bugs.ruby-lang.org/issues/6142#change-24624

Author: Innokenty Mikhailov
Status: Open
Priority: Normal
Assignee: 
Category: 
Target version: 
ruby -v: ruby 2.0.0dev (2012-03-14 trunk 35013) [x86_64-linux]


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.


-- 
http://bugs.ruby-lang.org/