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

Re: Destructuring syntax



Dan, I think you're being far far too conservative in your opion about
extending lambda-binding:
    Date: 2 February 1981 02:56-EST
    From: Daniel L. Weinreb <dlw at MIT-AI>
    .  .  .  Destructuring is new functionality; there should be a
    new special form that does it. .  .  . 
    Modifying all lambda-binding special forms to have a
    feature that has nothing to do with lambda-binding is what I object to.
In the LISP RECENT note (now in the LISP NEWS file) dated "Jan 27,1979"
there was presented a very succinct bnf syntax for "lambda-lists", which 
would take care of LET, DEFUN, DO, PROG etc. (see item 3b in that note). 
In fact, only DEFUN now allows the & keywords, and Quux later sent an 
addeddum giving some ideas on how &optional and &rest could be added to 
the others.

This syntax is ** fully-upward compatible **, and entirely unabmiguous
(as the bnf shows);  The fact that many ordinary users are rudely
suprised when they find it is unavailable on the LISPM shows that it
must be a "natural" extension too.  In fact, at other non-MIT sites
this sort of "destructuring" in the lambda-list has been independently
invented and used, but private conversations with these types usually
meets extreme resistance to the & keywords (even now, KMP still objects
to it, and has other ways of doing these things).

As far as I know, LISPM/MacLISP/NIL is the only dialect supporting the
& keywords, but lots of others support destructuring.  I'd be interested
in hearing some non-MIT, non-hacker ideas on this.