PostScript で条件分岐が複雑になるとネストが深くなって困る。
こんなのを考えてみた。
/cond{ [ exch /exec cvx {} ]cvx 1 exch repeat exec }bind def /;{ exch{ exit }if pop }bind def
このように使う。
%!PS /max 100 def 1 { { dup max gt{ pop exit }; dup 15 mod 0 eq{ (FizzBuzz) = }; dup 5 mod 0 eq{ (Buzz) = }; dup 3 mod 0 eq{ (Fizz) = }; true{ dup = }; }cond 1 add }loop
条件が全て偽の場合は何もしない。