Rubyとの出会いを思い出した
irofさんのid:irof:20111203を読んで。
同感ですね〜!
思えば、同じ思い(「ブレイク処理」は正直論外で、分かり易く書くには?)がキッカケでRubyを知って、ハマっていった気がする。
当時、自分の使える言語ではスッキリしなくて、使ったことがない言語を試してたらRubyがドンピシャだった。
というか、全く使ったことなかったのに『こんな感じで書けたら〜』と気楽に書いてたら出来ちゃったし。
とにかくスッキリしちゃったので、使ったことがない言語での調査もそこで終了させちゃったw
てな感じで、記事を読んでたら思わずRubyと出会った頃を思い出しましたよ。
さて、当時よりわかりにくい気がするけど、今だとこう書きます。
Datum = Struct.new(:code, :name, :value) data = [ Datum.new("A01", "hoge", 100), Datum.new("A01", "piyo", 200), Datum.new("A02", "hoge", 300), Datum.new("A03", "hoge", 400), Datum.new("A03", "piyo", 500), ] p data.group_by{ |d| d.code }.tap{ |_| _.each{ |key, data| _[key] = data.inject(0){ |r, d| r+d.value } } } # => {"A01"=>300, "A02"=>300, "A03"=>900}