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 )
なにかあれば下記メールアドレスへ。
shinichiro.hamaji _at_ gmail.com
shinichiro.h