FizzBuzzを30byteで作る方法

某Y!社の新卒には入社までに、FizzBuzzを61byte,エンジニアは30byteでつくってこいという課題があるようだ。いくらなんでも難しすぎるよね。検索して見つけろということなのかなあ?

http://twitter.com/#!/yamaji/status/28840058526105600

こんなポストがTLに流れてきました。自分はエンジニアなので30byteで作らないといけないようです。
で、参考までにanarchy golfを見てみます。
http://www.shinh.org/p.rb?FizzBuzz
下の方にあるLanguage Rankingが全ての言語での現在の結果です。2011-1-24現在ではFlogScriptの36byteが一番短いコードのようです。code golfの先人達が叩き出した記録をそう易々と、しかも6byteも縮めて越えられるとは思えないですね。
では、「30byteでFizzBuzzを作るのは無理」というのが正答でしょうか?
いやいや、まさか大手Y!社がそんな出来もしない課題を出すはずがありません。おそらく今ある言語で作れないのなら、30byteでFizzBuzzが作れる言語を作れということでしょう。間違いない!

ということでプログラミング言語FizzBuzzを作りました。以下からダウンロードしてください。なお、Python3で書いてあるのでPython3系が必須です。
https://bitbucket.org/naoina/fizzbuzz/raw/1ba32b27db77/fizzbuzz
ダウンロード出来たら実行権限を付けて、Python3が入っている環境で適当なファイル名で以下のコードを書きます。ここではfizzbuzz.fzとします。

fizzbuzz(100)

保存したら、ファイルを処理系に食わせて実行します。

% fizzbuzz fizzbuzz.fz

するとFizzBuzzの答えが出力されます。ソースコードは「fizzbuzz(100)」だけなので13byteです。なんと指定された30byteより17byteも縮まってしまいました!プログラミング言語FizzBuzz凄い!
もちろん普通にプログラミング言語として使えます。というか、Pythonのコードであれば全て実行できます。例えば

s = "test"
print(s)

上記のソースコードを実行すると

test

と出力します。
詳しく知りたい方はソースを見て下さい。おそらく想像通りです。

何はともあれ、これでY!社の新卒エンジニアとして内定をもらっても安心ですね!