Я набрал следующий код в irb:
(1..5).reduce([]){|a,b| p a,b }
Ожидаемые результаты будут:
[]
1
[]
2
[]
3
[]
4
[]
5
=> []
Поскольку я не изменял в любой точке, возвращаемое значение inject
будет []
Но по странной причине я получаю это:
[]
1
[[], 1]
2
[[[], 1], 2]
3
[[[[], 1], 2], 3]
4
[[[[[], 1], 2], 3], 4]
5
=> [[[[[[], 1], 2], 3], 4], 5]
Почему возвращаемое значение inject
изменилось по сравнению с исходным, когда я даже не изменил его? Может кто-нибудь, пожалуйста, пролить свет на это.
Я использую МРТ 1.9.2
Спасибо