FizzBuzzにはまってしまった件
昨夜書いたセミコロンを使わずにFizzBuzzが書きたーい!!の続き。
Whitespace
http://ideone.com/xNhH1
変換元はこちら。
Push(0); Label("loop"); Add(1); Dup(); Mod(3); JmpZ("fizz"); Dup(); Mod(5); JmpZ("buzz"); Dup(); PNum(); Label("loop_chk"); Print("\n"); Dup(); Sub(100); JmpN("loop"); End(); Label("fizz"); Print("Fizz"); Dup(); Mod(5); JmpZ("buzz"); Jmp("loop_chk"); Label("buzz"); Print("Buzz"); Jmp("loop_chk");
バッチファイル
cmd /v:on /c "for /l %n in (1,1,100) do @set /a m3 = %n % 3 > nul && set /a m5 = %n % 5 > nul && if "!m3!!m5!" == "00" (echo FizzBuzz) else if !m3! == 0 (echo Fizz) else if !m5! == 0 (echo Buzz) else echo %n""
無理矢理ワンライナーにしたら相当ひどいことになった。後悔はしてない。
あと初めて遅延展開使った。
ひまわり
100回、表示("{リフレイン(`Fizz`,回数%3=0)}{リフレイン(`Fizz`,回数%5=0)}{リフレイン(回数,回数%3*回数%5>0)}")
全然日本語っぽくない。