PostScript で条件分岐が複雑になるとネストが深くなって困る。

こんなのを考えてみた。

/cond{
    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) =
        };
        {
            dup =
        }
    }cond
    1 add
}loop

全ての条件が偽だった場合の処理は必ず書き、";" をつけない。