原です。
> p k.collect{|x, j| [x, v[j]]} #=> {2=>20, 3=>30}
間違えました。 #=> [[2, 20], [3, 30]]
でした。
こういう手も考えました。
module Enumerable
class With_index
include Enumerable
def initialize(x)
@obj = x
@i = 0
end
def each
@obj.each do |x|
yield(x, @i)
@i += 1
end
end
end
def with_index
With_index.new(self)
end
end
k = [2, 3]
v = [20, 30]
p k.with_index.collect{|x, j| [x, v[j]]} #=> [[2, 20], [3, 30]]
p k.with_index とすると内部クラスが見えてしまうのが難か。
しらないうちに Array, Hash の話でなくなって、例の i++ 問
題になりかかっている。(^^;