Сегодня я видел отрывок кода Ruby.
[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}
Объясните, как это работает?