2D Lisp
beflisp.bef が 1次元 Lisp しかサポートしてないのはけしからん、と言われてその通りだなぁと思ったので、 lisp2d.c てのを書いて beflisp2d.bef を生成してみました。 bc2bef.cc は全くいじる必要がありませんでした。 Befunge コードが C 書くだけで作れるってのはラクチンですね…
で、こんなコードが動きます。2次元であることに面白い意味を持たせるアイデアが無かったので、単に 2D レイアウトできるようになっただけです。 Befunge 同様コードが交差できるのは少しオシャレ。気をつけないと括弧のつもりで使った v が文字列の一部になったりするので、書くのはかなり大変
(defun fizzbuzz ^ (fizzbuzz 1) @ ^ zzuB ( 0 (5 n dom) i ^ f v ^ q ( eq ^ ^ fi) ^ v m e o q l f d i i n (mod n 15) 0) Fizzbuzz v n 1 q 3 0 e v 1 (if v v 0 t v n n i i F l r i p ^ z (if v ^ z 1 n v n v v + v v zzubzzif )