ひわだです。最近いろんな話が出て来て面白いです。

こん↓なの思い付いたんですけど、どうですか? ^^;。わりと使えそうな気が
するんですが。ちょっと変かな。

module Enumerable
  class MethodIterator
    self.instance_methods.each{|m| undef_method m}
    def initialize(e, id)
      @a_enumerable, @method_id = e, id
    end
    def method_missing(id, *a, &block)
      @a_enumerable.send(@method_id){|c| c.send(id, *a, &block)}
    end
  end
  def meach ;    MethodIterator.new(self, :each) end
  def mcollect ; MethodIterator.new(self, :collect) end
  def mfind ;    MethodIterator.new(self, :find) end
end

p ["1","4","2","3","5"].mcollect.to_i.sort
p [[1,2,3,4,5],[5,4,3,2,1]].mcollect.sort{|a,b| b<=>a}
p [0,3,2,4,0,5].mfind.nonzero?

あ、それだけです ^^;。では。
--
檜田 和浩 ( hiwada / kuee.kyoto-u.ac.jp )