3 (defun mkstr (&rest args) 4 (with-output-to-string (s) 5 (dolist (a args) (princ a s)))) 7 (defun symb (&rest args) 8 (values (intern (apply #'mkstr args)))) 11 (format NIL "~8,'0x-~8,'0x" (random #xFFFFFFFF) (get-universal-time))) 13 (defun scan-dir (dir filename callback) 14 (dolist (path (directory (merge-pathnames (merge-pathnames filename "**/") dir))) 15 (funcall callback path))) 17 (defun sbq-reader (stream sub-char numarg) 18 "The anaphoric sharp-backquote reader: #`((,a1))" 19 (declare (ignore sub-char)) 20 (unless numarg (setq numarg 1)) 21 `(lambda ,(loop for i from 1 to numarg 24 (get-macro-character #\`) stream nil))) 26 (eval-when (:load-toplevel) 27 (set-dispatch-macro-character 28 #\# #\` #'demo:sbq-reader))