Сегодня я видел фрагмент кода рубина.
[1,2,3,4,5,6,7].inject(:+)
=> 28
[1,2,3,4,5,6,7].inject(:*)
=> 5040
Инъекция здесь сильно отличается от тех, что я видел раньше, например
[1,2,3,4,5,6,7].inject {|sum, x| sum + x}
Пожалуйста, объясните, как это работает?