ごとけんです

さっきの myeach は意味不明だったので訂正します。

  class Array
    def myeach(&block)
      arity = block.arity
      if arity > 0
	i = 0
	(size/arity).times{|i|
	  yield(*self[arity*i, arity])
	}
	(rest = size%arity) > 0 and yield(*self[arity*(i+1), rest]) 
      else
	each(&block)
      end
    end
  end

  array = ['a1','b1','c1','a2','b2','c2',"a"]
  array.myeach{|a,b,c| puts [a,b,c].join("#")}