Asobozeをはじめました。そして今さらFizz-Buzz問題
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リーダの記事を消化したりしてました。こういうのって、溜りすぎるともう読めなくなっちゃうから注意が必要です。