Commons bugs in ruby: Changing collection while iterating over it
You should never, never, never iterate over a collection which the iteration loop somehow modifies. Elements of the collection will be moved during the iteration. Elements might be missed or handled twice.
b=(1..10).collect # => [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] b.each do |elem| b.delete elem end #=> [2, 4, 6, 8, 10]