Asobozeをはじめました。そして今さらFizz-Buzz問題

Tsukasa OISHI

 Railsで作るサービス第二弾は、Webカレンダーの Asobozeです。ユルさんに頼まれて、仲間内だけで使えるものを作ったのですが、複数のカレンダーをいくらでもつくれるようにして、誰でも使えるものにしてみました。今後の課題はサイトデザインです(今はノータッチ)。

 今さらですが、 Fizz-Buzz問題をやってみました。「2分とかからずにできるはずだ」とあるので、とにかく直観のままに1分で書いてみたのが以下のコード。

1.upto(100) do |i|
  output = ''
  if i % 3 == 0
    output << 'Fizz'
  end

  if i % 5 == 0
    output << 'Buzz'
  end

  if output.empty?
    output << i.to_s
  end

  puts output
end

 もうちょっとイジくってみよう。

1.upto(100) do |i|
  output = ''
  output << 'Fizz' if i % 3 == 0
  output << 'Buzz' if i % 5 == 0
  output << i.to_s if output.empty?
  puts output
end

 なんとなくoutputという文字列オブジェクトを使うのが納得いかない気がする。わかりやすいけど洗練されていませんね。
 ちなみにワンライナでいくとこんな風になりました。

(1..100).to_a.map{ |i| i % 15 == 0 ? 'FizzBuzz' : i }.map{ |i| i % 3 == 0 ? 'Fizz' : i}.map{ |i| i % 5 == 0 ? 'Buzz' : i }.each{ |i| puts i }

 きたねー。

 日曜の夜はなんだかゆったり時間があったので、溜っていたメールやRSSリーダの記事を消化したりしてました。こういうのって、溜りすぎるともう読めなくなっちゃうから注意が必要です。