; [] to #() (defun bracket-reader (stream char) (declare (ignore char)) `(vector ,@(read-delimited-list #\] stream t))) (set-macro-character #\[ #'bracket-reader) (set-syntax-from-char #\] #\))
; {} to hash (defun set-hash-values (hash pairs) (when pairs (setf (gethash (car pairs) hash) (cadr pairs)) (set-hash-values hash (cddr pairs)))) (defun in-place-hash (stream char) (declare (ignore char)) `(let ((hash (make-hash-table))) (set-hash-values hash ',(read-delimited-list #\} stream t)) hash)) (set-macro-character #\{ #'in-place-hash) (set-syntax-from-char #\} #\))