Project

General

Profile

Actions

Bug #2533

closed

sample/occur2.rb is old-fashioned

Added by yugui (Yuki Sonoda) over 12 years ago. Updated over 11 years ago.

Status:
Closed
Priority:
Normal
Target version:
ruby -v:
ruby 1.9.2dev (2009-12-24 trunk 26168) [i386-darwin9.8.0]
Backport:
[ruby-dev:39927]

Description

=begin
Kernel#splitが無くなったことでsample/occur2.rbが動かなくなっていたのでr26180で修正しました。

それにしてもsample/occur2.rbは、今から見るとあまり良くないように思えます。
暗黙の変数を使うあたりがあまり現代Ruby的でなく、無意味にNil#+(Integer)のNameErrorでキーの不在をフォローしているのが教育上好ましくないと思います。
例外を使ってみるとか、何らかの意図があったんでしょうか。

現代語としては次のようになるのが自然ではないかと思いますが、いかがでしょうか。もし良ければ差し替えたいと思います。

diff --git a/sample/occur2.rb b/sample/occur2.rb
index 22cf520..ca87d0d 100644
--- a/sample/occur2.rb
+++ b/sample/occur2.rb
@@ -1,13 +1,10 @@

word occurrence listing

usege: ruby occur2.rb file..

freq = {}
-while gets()

  • for word in $_.split(/\W+/)
  • begin
  •  freq[word] += 1
    
  • rescue NameError
  •  freq[word] = 1
    
  • end
    +ARGF.each_line do |line|
  • for word in line.split(/\W+/)
  • freq[word] ||= 0
  • freq[word] += 1
    end
    end
    =end
Actions

Also available in: Atom PDF