刚刚学习 Ruby,发现了一些奇怪的东西(至少对于 ansi-c 程序员来说)。
拥有 Mac OS X 10.6.2、ruby 1.8.7 (2008-08-11 patchlevel 72) [universal-darwin10.0]、feed-normalizer 1.5.1 和 crm114 1.0.3
require 'rubygems'
require 'crm114'
require 'feed-normalizer'
#FeedNormalizer::FeedNormalizer.parse open("http://news.google.com/news?ned=us&topic=w&output=rss")
crm = Classifier::CRM114.new([:interesting, :boring])
crm.train! :interesting, 'Some data set with a decent signal to noise ratio.'
crm.train! :boring, 'Pig latin, as in lorem ipsum dolor sit amet.'
puts crm.classify 'Lorem ipsum'
运行上面的文件:
$ ruby crmdebug.rb
interesting
0.5
好吧,这只是演示。
现在取消注释该行#FeedNormalizer...
并在没有注释的情况下运行文件:
$ ruby crmdebug.rb
nil
0.0
?!地球在这里发生了什么?为什么 FeedNormalizer 的使用会破坏 crm114(那些不相关)?如何调试这种情况?这是典型的另一个类打破其他类吗?是否也重新启动(嘿,这是 Mac ;))