From: Tim Bradshaw
Subject: Re: Some macro character questions
Date: 
Message-ID: <chp1ab$hjh@odak26.prod.google.com>
Jeff M. wrote:
> The first is a play off an older Lisp implementation I read about
> (can't remember the name of the implementation, but I'm sure someone
> here knows). It would be setting #\] to close all open lists:

I think this might well be InterLisp, although I'm not sure. It
certainly had a fair amount of clever `helpful' syntax like this.

To do this, I think you need to change the read macro for #\(, and
this will be exciting and difficult.  In particular it's hard because
you don't have access to what #\( actually does as a function -
READ-DELIMITED-LIST is crucially *not* it, because it does not handle
dotted lists at all.  And what you want is something more than even a
generalised version of READ-DELIMITED-LIST.  There is something about
this sort of issue (as a result of a huge and futile discussion on cll
a couple of years ago) at
http://www.tfeb.org/lisp/obscurities.html#RDL.  I think that (although
it doesn't solve your problem) the READ-DELIMITED-FORM I suggest there
would be a good addition to CL.

> [a b c] => (a b c)
>
> Instead of having to use '( ). There is no particular reason for this
> other than to learn from doing it. I've made character macros for #/
> ... / (my regular expression macro reader) which works just fine, but
> each of these involves using the reader to parse more instead of just
> reading characters from the input stream.

This is easier - READ-DELIMITED-LIST will do this.  But again, watch
out for, say [a b . c] - do you want that to work?  If so you need
READ-DELIMITED-FORM.

--tim
From: Sashank Varma
Subject: Re: Some macro character questions
Date: 
Message-ID: <none-833D79.12201109092004@news.vanderbilt.edu>
In article <··········@odak26.prod.google.com>,
 "Tim Bradshaw" <··········@tfeb.org> wrote:

> Jeff M. wrote:
> > The first is a play off an older Lisp implementation I read about
> > (can't remember the name of the implementation, but I'm sure someone
> > here knows). It would be setting #\] to close all open lists:
> 
> I think this might well be InterLisp, although I'm not sure. It
> certainly had a fair amount of clever `helpful' syntax like this.

I remember seeing this use of #\] in FranzLisp programs of
the 1980s.  (FranzLisp was more MacLispy than InterLispy.)