ビデオ・オモシロス
http://macromates.com/screencast/ruby_quiz_screencast.mov
このビデオ*1にて,enumeratorという素敵なものの存在を知った.
% irb >> require 'enumerator' >> p (1..10).enum_for(:each_slice, 3).to_a [[1, 2, 3], [4, 5, 6], [7, 8, 9], [10]] >> p (1..10).enum_for(:each_slice, 5).to_a [[1, 2, 3, 4, 5], [6, 7, 8, 9, 10]] >> p (1..10).enum_for(:each_slice, 2).map{|l, r| l + r} [3, 7, 11, 15, 19] >> p (1..10).enum_for(:each_cons, 5).map{|e| e.inject{|r, e| r += e}} [15, 20, 25, 30, 35, 40]
なんかもう素敵くないですか,この挙動.正直言って,知ってるもん勝ちだなぁと思った.
あと,こんな記法もアリなんだなぁとか感心してた.
>> a = if true 1> 'hoge' 1> else >> 'fuga' 1> end >> puts a hoge
人のコードを読むのは面白いね.