#?=
read関数の引数がいけなかったらしい。
(defmacro debug-print (form) (with-gensyms (l v i) `(progn (format t "~&#?= ~S~%" ',form) (let ((,l (multiple-value-list ,form))) (loop for ,v in ,l and ,i = 0 then (1+ ,i) do (format t "~&#?~[-~:;+~] ~A" ,i ,v)) (values-list ,l))))) (set-dispatch-macro-character #\# #\? #'(lambda (s c1 c2) (declare (ignore c1 c2)) (read-char s) `(debug-print ,(read s t nil t))))
ついでに多値対応。
行番号の取得方法って何かあるのかな。