irb でチマチマ考えながら作ってると、each/mapなどのブロックの内部を修正したりが面倒になってくるので、簡単にやりたかった。 通常の Enumerable#each eachはブロック渡すように習います。 ["a","b","c"].each{|e| puts e} Procも渡せます。 もちろんProcも渡せます。 my_proc = Proc.new{|e| puts e } ["a","b","c"].each(&my_proc) Procオブジェクトを渡せばProc#call されて実行されます。 関数も渡せます Proc渡せるなら、Functionも渡したい def my_func(e) puts e end ["a","b","c"].each(&Object.method(:my_func)) グローバルにかいた関数は、グローバルなObjectのmethodとして定義