Search the FAQ Archives

3 - A - B - C - D - E - F - G - H - I - J - K - L - M
N - O - P - Q - R - S - T - U - V - W - X - Y - Z - Internet FAQ Archives

FAQ: Lisp Frequently Asked Questions 2/7 [Monthly posting]
Section - [2-18] What reader macro characters are used in major Lisp systems?

( Part1 - Part2 - Part3 - Part4 - Part5 - Part6 - Part7 - Single Page )
[ Usenet FAQs | Web FAQs | Documents | RFC Index | Forum ]

Top Document: FAQ: Lisp Frequently Asked Questions 2/7 [Monthly posting]
Previous Document: [2-17] Read-time conditionalization of code (#+ #- and *features*)
Next Document: [2-19] How do I determine if a file is a directory or not? How do I get the current directory name from within a Lisp
See reader questions & answers on this topic! - Help others by sharing your knowledge

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.

User Contributions:

Comment about this article, ask questions, or add new information about this topic: