From: rubikitch@... Date: 2008-10-21T18:42:37+09:00 Subject: [ruby-list:45575] Re: 簡潔なHASH値のインクリメント From: Urabe Shyouhei Subject: [ruby-list:45574] Re: 簡潔なHASH値のインクリメント Date: Tue, 21 Oct 2008 18:28:39 +0900 るびきちです。 > もっとRubyっぽい回答は他の人が投稿してくれるでしょう。 ワンライナー的にはpで出力が短くていいかと。 Ruby 1.9のハッシュは順序を保存するので勝手に出現順になってくれます。 $ cat A yahoo goo google yahoo msn msn $ ruby18 -vlne '(h||=Hash.new(0))[$_]+=1;END{p h}' A ruby 1.8.7 (2008-10-14 revision 18426) [i686-linux] {"yahoo"=>2, "google"=>1, "goo"=>1, "msn"=>2} $ ruby19 -vlne '(h||=Hash.new(0))[$_]+=1;END{p h}' A ruby 1.9.0 (2008-10-20) [i686-linux] {"yahoo"=>2, "goo"=>1, "google"=>1, "msn"=>2} 直訳 $ ruby18 -vlne '(h||=Hash.new(0))[$_]+=1;END{for k,v in h do print k," ",v end}' A ruby 1.8.7 (2008-10-14 revision 18426) [i686-linux] yahoo 2 google 1 goo 1 msn 2 $ ruby19 -vlne '(h||=Hash.new(0))[$_]+=1;END{for k,v in h do print k," ",v end}' A ruby 1.9.0 (2008-10-20) [i686-linux] yahoo 2 goo 1 google 1 msn 2 -- rubikitch Blog: http://d.hatena.ne.jp/rubikitch/ Site: http://www.rubyist.net/~rubikitch/