Hatena::Groupgeneration1986

Hell o world (86支部

 | 

2008-03-16ひねくれ FizzBuzz

FizzBuzz最短化計画から.

短くしようとしてる人はたくさん居るので,違った書き方をしてみようと思う.

言語はついさっきまで触ってた Ruby で.

以前,はてダの方で書いてるんですが...せっかくなので,短くしようとしてみよう.

出力部分に関しては色々書き方あるんですねー他の86な人の見て勉強してました.

(f=proc{|a|a>1?f[a-1]:1;puts (s=(a%3==0?'Fizz':'')+(a%5==0?'Buzz':''))==''?a:s})[100]

85文字.

他と違うところは繰り返し制御がループではなく,再起呼び出しになっている点.

つまり,100 回 FizzBuzz でなく,もっと多い回数になるとこのコードは動きません.あまり深い再起をするとインタープリタに怒られてしまうみたいです.

長いし,上限あるしいい事無いずくめ!やったね!

後方で再起呼出すればマシになるのかな.

ななしななし 2008/03/17 00:06 s/再起/再帰/g

hogeloghogelog 2008/03/17 00:13 いやRubyは末尾再帰の最適化はやってなかった気する。

HashHash 2008/03/17 00:21 なんという変態FizzBuzz!

daftbeatsdaftbeats 2008/03/17 09:48 ぎゃー再起になってる!
なるほど...ってか末尾再帰の最適化なんてのがあったんですね.

ゲスト



 |