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}