こんにちは。ひわだです。

既存のクラスにメソッドを追加するうまい方法はないでしょうか?。
Arrayクラスに fold メソッドを追加しようとしたところ、

module Foldable
  def fold(st=0)
    self.each{|i| st = yield(st, i)}
    st
  end
end
Array.public_class_method(:include)
Array.include(Foldable)
Array.private_class_method(:include)

rbc0> [1,2,3,4,5,6,7,8,9,10].fold {|st,i| st+i}
55

なんか、結局こんなになってしまいました ^^;。
これはこれでいいんですが、メソッド一つにこれだけ書くのも何だか ^^;。

なんかぼけた質問のような気がしてならないんですが、
普通どうするものなのか教えてください (_ _)。
--
京都大学大学院情報学研究科 M1 檜田 和浩 ( hiwada / kuee.kyoto-u.ac.jp )