##予備知識
- オブジェクトは
&
で修飾でき、 blockをprocに、 procをblockに 変換する。 -
&
はさらに、 procでないオブジェクトに対してto_procを呼んでからblockに変換する。 -
Symbol#to_proc
は、引数を1つとり、そのsymbolをメソッドとして呼ぶprocを返す。
具体的には、:to_s.to_proc
は
Proc.new do |elem|
elem.send(:to_s)
end
を返す。
##結論
array = [1,2,3]
array.map(&:to_s)
# => ["1", "2", "3"]
出典
http://www.reddit.com/r/ruby/comments/2ipgx6/help_understanding_mapjoin/