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

Re: loss of abstraction



Panu Kalliokoski <atehwa@xxxxxxxx> writes:

>
> The answer in Lisp has been, for 46 years, that syntax objects and lists
> _are_ the same.  

Sure.  The answer in Lisp has also been that identifiers and symbols
are the same.  Turns out it was wrong.  Moreover, once that choice is
made, changing the representation is seriously hindered by the fact
that the representation wasn't abstract to begin with.

> The possible extensions you mention -- tracking comments, different
> kinds of brackets, and whether pairs were entered in dotted or list form
> -- all break the barrier between (eval) and (read).  If Scheme was to do
> such things, we would have to redefine those procedures, or to define
> that programs are not necessarily read in via (read).  

R5RS doesn't specify that programs are necessarily read in via READ.
(And, in fact, many implementations don't.)  No problem there.

> Also, comment tracking (and other stuff, too) can be implemented in the
> same way as source location tracking: with an external hash table.

Sure.  In fact, records in general can be implemented with an external
hash table, and some Lisp programmers (of the past?) might think this
is a good idea.  I don't.

-- 
Cheers =8-} Mike
Friede, Völkerverständigung und überhaupt blabla