changelog shortlog graph tags branches changeset files revisions annotate raw help

Mercurial > demo / src/tk.lisp

changeset 22: ba323d8c0f93
parent: tk.lisp@2bbf5ce73537
author: ellis <ellis@rwest.io>
date: Sat, 03 Jun 2023 22:48:46 -0400
permissions: -rw-r--r--
description: refactor1
1 (in-package :demo)
2 
3 (defun mkstr (&rest args)
4  (with-output-to-string (s)
5  (dolist (a args) (princ a s))))
6 
7 (defun symb (&rest args)
8  (values (intern (apply #'mkstr args))))
9 
10 (defun random-id ()
11  (format NIL "~8,'0x-~8,'0x" (random #xFFFFFFFF) (get-universal-time)))
12 
13 (defun scan-dir (dir filename callback)
14  (dolist (path (directory (merge-pathnames (merge-pathnames filename "**/") dir)))
15  (funcall callback path)))
16 
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
22  collect (symb 'a i))
23  ,(funcall
24  (get-macro-character #\`) stream nil)))
25 
26 (eval-when (:load-toplevel)
27  (set-dispatch-macro-character
28  #\# #\` #'demo:sbq-reader))