reader macro

のつづき
Gaucheにあるようなデバッグ用のリードマクロを書いてみた
マクロ文字は@

(set-macro-character
   #\@
   #'(lambda (stream char)
      (let ((read-data (read stream t nil t)))
          `(progn
               (format t "~A~A => ~A~%" ,char (quote ,read-data) ,read-data)
               ,read-data))))

こんな感じ?こんな風に出ます

 * (for (i 0 10)
       @(* i i))

@(* I I) => 0
@(* I I) => 1
@(* I I) => 4
@(* I I) => 9
@(* I I) => 16
@(* I I) => 25
@(* I I) => 36
@(* I I) => 49
@(* I I) => 64
@(* I I) => 81
@(* I I) => 100
NIL

中置記法も出来そうである。
http://plaza.ufl.edu/lavigne/infix.lisp
やっぱりあった。