海野秀之(うんのひでゆき)の外部記憶
Twitter (twilog) / RSS / アンテナ / ぶくま
http://web.kyoto-inet.or.jp/people/gangster/schedule/06schedule.html
18:30 kick off. 見にはいけないけど、念じておこう。
念じやすいように(?)、西京極陸上競技上の 千里眼イメージ的を Google Map から。
→37 対 0 で負けてしまったようです。残念。
http://codegolf.com/99-bottles-of-beer (Matzにっき経由)
普段、こういう書きかたは全くしないのだけど、 気が向いたので昨日書いてみた。今朝みたら 8-byte 短くなった。 夜うんうん唸りながらデバッグするより寝ろとは言ったものです。 これは遊びですが。
b,c,d,e,s=' bottle',' of beer',' on the wall',".\n",'s' g=c+d 99.downto(1){|i|a=i>1?b+s:b;f=i>2?b+s:b;puts"#{i}#{a+g}, #{i}#{a+c+e+(i>1?"Take one down and pass it around, #{i-1}#{f+g+e}\n":"Go to the store and buy some more, 99#{b+s+g}.")}"}
これで 241 バイト (改行文字は 1 バイト (Unix的)とする)。 Ruby での最短記録 (183 バイト)までは随分遠いよ。
200 バイト切れそうな気が全くしないけど、また寝て起きて見たら何か思うかもしれないので、ここに貼っておこう。
さらに -2 byte(笑):
b,c,d,e,s=' bottle',' of beer',' on the wall',".\n",'s' g=c+d 99.downto(1){|i|a=i>1?b+s:b;f=i>2?a:b;puts"#{i}#{a+g}, #{i}#{a+c+e+(i>1?"Take one down and pass it around, #{i-1}#{f+g+e}\n":"Go to the store and buy some more, 99#{b+s+g}.")}"}
ふう、今日はこれでやめとこ(できれば):
b,c,d=' bottle',' of beer',' on the wall' 99.downto(1){|i|a=i>1?b+'s':b;f=i>2?a:b;puts"#{i}#{a+g=c+d}, #{i}#{a+c}.\n#{i>1?"Take one down and pass it around, #{i-1}#{f+g}.\n\n":"Go to the store and buy some more, 99#{b+'s'+g}."}"}
229 バイト。'a+g=c+d' の実行結果なんて、試してみないとわからんよ(笑)。
ほんとに今日はこれでおわり(223 バイト):
b,c=' bottle',' of beer' 99.downto(1){|i|puts"#{i}#{(a=i>1?b+'s':b)+g=c+' on the wall'}, #{i}#{a+c}.\n#{i>1?"Take one down and pass it around, #{i-1}#{i>2?a+g:b+g}.\n\n":"Go to the store and buy some more, 99#{b+'s'+g}."}"}
いまは 30 分にいちど更新するようにしてあるのだが、 なんかとっても過剰な気がしている。
半日に一回とかに頻度を落とそう。 家に帰ってからしかできないので、いつも忘れるんですが。
201@Perl
うへぇ、まじすか。