eachの実装

Rubyでクラスを作っているとeachメソッドを実装したいことがある。
そして、それはたいていArray#eachに丸投げするだけ。

def each
 @array.each{|x|
   yield x
 }
end

で、これよりも、ブロックをProcオブジェクトとして受け取り、それをArray#eachにそのまま渡してやったほうがシンプルだと気がついた。

def each(&block)
 @array.each &block
end