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
やっぱりあった。