Atajo de colon de rubí y signo [duplicado]
Posible duplicado:
¿Qué significa mapa (&: nombre) en Ruby?
En Ruby, sé que si lo hago:
some_objects.each(&:foo)
Es lo mismo que
some_objects.each { |obj| obj.foo }
Es decir,&:foo
crea el bloque{ |obj| obj.foo }
, lo convierte en un Proc, y se lo pasa a cada uno. ¿Por qué funciona esto? ¿Es solo un caso especial de Ruby, o hay alguna razón por la que esto funciona como lo hace?