tsykの日記: おぉ、そうか!
日記 by
tsyk
k3cさんの日記“コーディング”と、そのコメントを見て気が付いた。
自分の日記“CommonLisp → Ruby (Bayesian SPAM Filtering)”で、
Arrayクラスにapplyメソッドを追加していたが、
ruby1.7以降ではEnumerable#injectが用意されているので、
そのメソッドは不要になる。
class Array
def apply(m)
arr = self.dup
r = arr.shift
arr.each{|a| r = r.send(m, a)}
r
end
end
prod = probs.apply(:*)
prod / (prod + probs.map{|a| 1 - a}.apply(:*))
↑これは、↓こう書き換えられる。
prod = probs.inject(1){|n,c| n*c}
prod / (prod + probs.map{|a| 1 - a}.inject(1){|n,c| n*c})
ふふふ、久し振りにアレゲな日記だ。
おぉ、そうか! More ログイン