[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Masinter's remarks on #,



I am very much in sympathy with the goal of writing program-writing programs
and program-transforming programs.  I don't think the existence or
non-existence of #, makes that job any harder or easier, however.
I think that any mechanism that can also preserve the distinction
between #o777 and 511, or for that matter between |(foo| and \(foo,
or even between (x . (a b c)) and (x a b c) [I sometimes write the former
in a constant a-list if necessary to preserve visual similarity of the
entries]---such a mechanism can also deal with #,.  The fact is that
vanilla READ is a many-to-one mapping; by the time you've got the
S-expression in memory you have already lost.  Preservation of the
information requires using a parser other than READ, which may imply
generation of internal structure different from what READ would
produce, that may be unsuitable for evaluation.  Alternatively, various
kinds of hashing could be used.  Nevertheless, in every LISP from
LISP 1.5 on, READ has been a many-to-one mapping.