I saw a ruby code snippet today.
[1,2,3,4,5,6,7].inject(:+)
=> 28
[1,2,3,4,5,6,7].inject(:*)
The :+ is a symbol representing the addition message. Remember that Ruby has a Smalltalk style where just about every operation is performed by sending a message to an object.
As discussed in great detail here, (1..100).inject(&:+)
is valid syntax in earlier versions where Rails has added the to_proc
extension to Symbol.
The ability to pass just a symbol into inject was new in 1.9 and backported into 1.8.7.