2009-10-01 イテレータでFizzBuzz FizzBuzzを書くのに、オープンクラスで書き換えるべきなのはFixnum#to_sじゃなくて、Range#eachじゃないかと思ってやってみた。 class Range def fizzer self.each do |n| f = (n % 3) == 0 ? "Fizz" : "" f += (n % 5) == 0 ? "Buzz" : "" f = n if f.empty? yield f end end end (1..100).fizzer {|i| puts i}