(defparameter *handwritten-table*
(let ((table (make-hash-table)))
(loop for i from 0 to 25 do
(setf (gethash (+ 120016 i) table) (+ 65 i)))
(loop for i from 0 to 25 do
(setf (gethash (+ 120042 i) table) (+ 97 i)))
table))
(defun read-handwritten-char (stream)
(let* ((c (read-char stream))
(code (char-int c))
(tr (gethash code *handwritten-table*)))
(if tr
(int-char tr)
(unread-char c stream))))
(defun read-handwritten-token (stream)
(concatenate 'string (loop with c
do (setf c (read-handwritten-char stream))
while c
collect c)))
(defun handwritten-reader (stream char)
(unread-char char stream)
(let ((x (read-from-string (read-handwritten-token stream))))
x))
(loop for i from 0 to 51 do
(set-macro-character (int-char (+ i 120016)) #'handwritten-reader))
; 𝓝𝓸𝔀 𝔀𝓮 𝓬𝓪𝓷 𝓾𝓼𝓮 𝓱𝓪𝓷𝓭𝔀𝓻𝓲𝓽𝓽𝓮𝓷 𝓬𝓱𝓪𝓻𝓪𝓬𝓽𝓮𝓻𝓼 𝓪𝓵𝓶𝓸𝓼𝓽 𝓪𝓷𝔂𝔀𝓱𝓮𝓻𝓮...
(𝓭𝓮𝓯𝓾𝓷 𝓱𝓮𝓵𝓵𝓸 () (𝓹𝓻𝓲𝓷𝓽 "𝓗𝓮𝓵𝓵𝓸, 𝓦𝓸𝓻𝓵𝓭"))
(𝓱𝓮𝓵𝓵𝓸)