昨日の続き。
まず、reference implementation がバグってたので更新。string mode のまま画面外に出たとき、反対側に戻るのを忘れてた。
http://dame.dyndns.org/misc/pefunge/2dpi.rb
あと、一応 quine を書いた。49 bytes 。
01-:v v&G2G:-<9 "< +*57<!2|?$$\$1^ ^G/2:G5*52"
それから、
ランダム方向に移動 ('?') はあった方がいい? Haskell でインタプリタ実装するときにめんどうくさいから入れたくないんだけど (笑)
なんて言ってるけど、ランダムは並列実行でエミュレートできるかも。例えば、次のようにすれば AAA を実行するとき、スタックに 0 か 1 が積まれている。ただ、処理系の実装によっては、必ずどちらかに決まってしまう可能性もある。
v > 0! > & | > ? 0 v > | > AAA > ? 1 ^
brainfuck のインタプリタはまだ書けていない。befunge よりずっと面倒くさいよ。おかげで π-calculus の理解が深まった気がする。まあ気のせいだけど。