kiyokaのブログアーカイブ

Archive of old blog posts

RubyのリハビリでFizzBuzz問題

同僚からRubyの質問を受けることが多くなりました。 というわけで、RubyのリハビリがてらにFizzBuzz問題をやってみました。 ええ?Rubyに見えないって? Ruby on Railsやる人はこれくらいのコードは書けないといけないようです。^^ P.S. 関係ないですが、それにしてもtDiaryのソース貼りつけは落とし穴いっぱいですね。空行はダメなんですね。ちょっとハマりました。

#!/usr/local/bin/ruby

fizzbuzz_in_range = lambda { |range|
  fizzbuzz = lambda { |x|
    (0 == x % 15) ? 'FizzBuzz' :
                    ((0 == x % 3 ) ? 'Fizz' : 
                                             ((0 == x % 5 ) ? 'Buzz' :  x.to_s)) }
  range.map( &fizzbuzz ) }

print fizzbuzz_in_range.call( (1..100) ).map { |x| x + ' ' }, "\n"