Actions
Bug #2533
closedsample/occur2.rb is old-fashioned
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
Like0
Like0Like0