まことに FizzBuzz の種は盡きまじ。
fizzbuzz = Enumerator.new {|y| (1..).each do |i| f = (i % 3).zero? b = (i % 5).zero? y << case when f && b then "FizzBuzz" when f then "Fizz" when b then "Buzz" else i.to_s end end } puts fizzbuzz.take(40)
Enumerator と Endless Range は使いたいよね。場合分けは case ~ when。