Enumerable#inject
Haskellのfoldl1みたいなのが無いのかと思っていたら、第1引数を省略すればいいだけだったのか。
Enumerableにfoldl1を追加してしまった。。
> (1..10).inject(0) {|r, s| r + s} => 55 > (1..10).inject {|r, s| r + s} => 55 > %w(a b c d).inject("") {|r, s| r + s} => "abcd" > %w(a b c d).inject {|r, s| r + s} => "abcd"
Rubyだとこんなもok。
> %w(a b c d).inject {|r, s| [r, s] } => [[["a", "b"], "c"], "d"]