2006-06-08
■ [ruby] injectとto_proc
いまさらだが、to_procってinjectと組み合わせても便利なのね。
irb(main):005:0> class Symbol ;def to_proc; Proc.new { |obj, *args| obj.send(self, *args) }; end; end => nil irb(main):006:0> [1,2,3].map(&:to_s) => ["1", "2", "3"] irb(main):012:0> [1,2,3].inject(&:+) => 6 irb(main):013:0> [1,2,3].inject(&:*) => 6
整数の配列の和を求めるのにブロック書くのはめんどい!と思ってた(よくArray#sumとか定義してた)んだけど、 array.inject(&:+) くらいなら許容範囲か。