Hatena::ブログ(Diary)

Mi manca qualche giovedi`? このページをアンテナに追加 RSSフィード Twitter

2007-05-16 brainf*ckでFizzBuzz

brainf*ckでFizzBuzz

頭が痛くて長い時間ものが考えられない……ので気晴らしにbrainfuckで3言語目のFizzBuzz(ErlangRubyは→ id:n_shuyo:20070511:fizzbuzz )。なんだかんだ言ってはまってる?

++++[->++++<]>+[<++++++>>++++>++++++>+++++++>>++++>+++++++<<<<<<-]<-->+++>++>+++>+++>+++++>-->--<<<<<<<[->-[>>>>>>>]>[<+++>.>.>..>>>>>>+<]<<<<-[>>>]>[<+++++>.>.<<<..>>>>>>+<]>>+<[[-]<]>[[-<+>>+<]>>++++++++++<[->->+<[>>]>[[-<+>]>>>+<]<<<<]>>>>>[-<+<+>>]++++++++[-<<++++++<++++++>>>]<[<.>[-]]<[-]<.[-]<[-]<<<[->+<]]++++++++++.[-]<<<<<<<<<<]

ん? わからん? そうですか。じゃあちょっとインデントして整形してみる。

++++[->++++<]>+
[<++++++>>++++>++++++>+++++++>>++++>+++++++<<<<<<-]
<-->+++>++>+++>+++>+++++>-->--<<<<<<<

[->
  -[>>>>>>>]>[<+++>.>.>..>>>>>>+<]<<<<
  -[>>>]>[<+++++>.>.<<<..>>>>>>+<]>>
  +<[[-]<]>[

    [-<+>>+<]>

      >++++++++++<
      [->->+<
        [>>]>[[-<+>]>>>+<]<<<<
      ]
      >>>>>[-<+<+>>]
      ++++++++[-<<++++++<++++++>>>]
      <[<.>[-]]<[-]<.[-]<[-]<

    <<[->+<]
  ]
  ++++++++++.[-]
  <<<<<<<<<<
]

これでとっても見通しよくわかりやすくなったね!

しかしはてなダイアリーシンタックスハイライトに brainf*ck がないとは。それがあればきっともっともっとわかりやすくなったのに。おしい。


▼追記

おお、やた、1位取れた。

http://golf.shinh.org/p.rb?FizzBuzz#Brainfuck

++++++[->++++>>+>+>-<<<<<]>
[<++++>>+++>++++>>+++>+++++>+++++>>>>>>++>>++<<<<<<<<<<<<<<-]
<++++>+++>-->+++>->>--->++>>>+++++[->++>++<<]<<<<<<<<<<

[->
 -[>>>>>>>]>[<+++>.>.>>>>..>>>+<]<<<<<
 -[>>>>]>[<+++++>.>.>..>>>+<]>>>>

 +<-[<<<]<[
   [-<<+>>]>>>+>+<<<<<<[->>+>+>-<<<<]<
 ]>>

 [[-]<]>[
   >>>[>.<<.<<<]<[.<<<<]>
 ]

 >.<<<<<<<<<<<
]

数の出力方法がまるっと変わってたり(毎回10で除算→最初に仕込み&繰り上がり方式)、数バイトずつ削る細々とした努力の跡があちらこちらに見て取れて涙を誘われることであろう(うんうん)。

こんなことばかりしているわけにもいかないので、FizzBuzz で遊ぶのはこのへんで打ち止め。え? Lua