リーダーマクロを定義する:一行コメント型 - lisp-cookbook-ja/common-lisp GitHub Wiki

標準のリーダーマクロである「;」と同じタイプの例です。

(defun read-comment (stream ignore)
  (declare (ignore ignore))
  ;; 改行かend-of-fileに遭遇するまで読み捨て
  (do ((char (read-char stream nil :eof) (read-char stream nil :eof)))
      ((or (eq char :eof) (char= char #\newline))) )
  (values))

リーダーがマクロ文字に遭遇すると、その文字から改行までを読み捨て、何も値は返しません

(let ((*readtable* (copy-readtable nil))) ;新しい標準のリードテーブル
  (set-macro-character #\% #'read-comment) ;%から改行までを読み捨て
  (with-input-from-string (in
"
% コメント
% コメント
% コメント
'foo"
)
    (read in)))
;=>  'FOO