[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Reader hacks
Date: Mon, 23 Dec 85 16:47 EST
From: Guy Steele <gls@THINK-AQUINAS.ARPA>
I am writing code for reader macros and find I need the following
things:
(1) A predicate that is true of whitespace characters and false
of all others. The problem is that
(member foo '(#\Space #\Newline))
doesn't cover tabs, etc., and
(member foo '(#\Space #\Newline #\Tab #\Form))
is not completely portable because of the semi-standard
character names.
Is this something different from
(or (char-equal char #\space)
(not (graphic-char-p char))) ?
(2) I find I can't easily write myself something akin to
READ-DELIMITED-LIST that handles dotted lists because of
the problem of recognizing all-dots tokens. PEEK-CHAR can
only peek one ahead, so I can't tell whether there is a
space after a dot before calling READ recursively.
How about a way (a special variable?) to turn off the somewhat silly
restriction that you can't have a symbol named .? Alternatively,
how about a function that does the token-isolating portion of READ
but not the printed-representation-to-object conversion portion of
READ?