Hi,
Please have a look at http://redmine.ruby-lang.org/issues/4539 (or [ruby-core:35613]).
The reason is explained by Yusuke in [ruby-core:35682]:
2011/4/5 Benoit Daloze eregontp@gmail.com:
An unconditional nil is anyway not useful here, the only concern I see
might be the cost of creating this Array.
It is actually a problem.
I have used Array#zip with block for iteration many times.
big_ary1.zip(big_ary2) do |x, y|
p [x, y]
end
The change requires some people (including me) to rewrite
such a code as follows:
big_ary1.size.times do |i|
x, y = big_ary1[i], big_ary2[i]
...
end
So I like zip_with, if it is really needed.
That issue kind of got lost, it is probably a good idea to continue it.
For your example, we could have [1,2,3].zip_with([1,2,3], :+)