; Use a simple lookup table created in a complicated way. :) (defmacro ext(a b) `(setq tab (append tab (loop for x from ,a to ,b collect x)))) (let (m (tab nil)) (ext 0 64) (ext 78 90) (ext 65 77) (ext 91 96) (ext 110 122) (ext 97 109) (ext 123 255) (loop (setq m (read-char)) (write-char (int-char (elt tab (char-int m))))))