[2-18] What reader macro characters are used in major Lisp systems?

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

Go To Previous

Go To Next