The draft ANSI standard for Common Lisp leaves many dispatching macro characters unassigned. Of these, the following are explicitly reserved for the user and hence will never be defined by Common Lisp: #!, #?, #[, #], #{, and #}. All other unassigned macro characters are not reserved for the user, and hence the user has no guarantee that they won't be used by some Lisp implementation. As a result, there is the potential of portability clashes between systems that use the same macro characters. This question lists the non-standard macro character usage of major Lisp systems, in an effort to avoid such conflicts. #" AKCL; pathnames #$ Macintosh Common Lisp; traps #% Cyc; references to constants in the representation language #% Harlequin LispWorks; ? #@ Macintosh Common Lisp; Points notation #@ Defsystem #I Portable Infix Package #L Allegro Common Lisp; logical pathnames #M Series #T Allegro Common Lisp; ? #Y CLISP; ? #Z Series #_ Macintosh Common Lisp; traps #` Harlequin LispWorks; ? There is a proposal in the ANSI draft to have COMPILE-FILE and LOAD bind *READTABLE*, which would allow one to locally redefine syntax through private readtables. Unfortunately, this doesn't help with the Infix Package, where one wants to globally extend syntax.Go Back Up