On Sun, Jun 12, 2011 at 7:00 AM, Daniel Weinreb dlw@alum.mit.edu wrote:
I, myself, really dislike &aux.
I don't even like
(let (a b c) ...)
Agreed on both counts. &aux is just gross. Like LOOP :-) <ducks>
As for read-only variables -- yes, it would have been nice if Lisp had used ML-style references(*) from the beginning. I understand many Scheme compilers have to perform this transformation anyway -- locating local variables subject to assignment, and consing heap cells to hold their values -- in order for continuation capture to work correctly in the presence of assignment.
(* But I don't like "reference" as a term for this concept; "cell" is better.)
On Sun, Jun 12, 2011 at 8:08 AM, Faré fahree@gmail.com wrote:
Also, binding forms are annoying in that they are verbose and move the body to the right as you nest them. Instead of any ad-hoc do-it-all binding macro, I like this macro from Marco Baringer that does nesting for you:
I use multiple values far too much to tolerate typing MULTIPLE-VALUE-BIND all the time. So I am very much a fan of my binding macro, which I protest is not ad hoc at all -- it generalizes LET, LET*, and MULTIPLE-VALUE-BIND in any combination, less verbosely and with less moving of the body to the right. It's also upward compatible with CL:LET.
In case anyone's interested, it's at http://common-lisp.net/project/misc-extensions/
It doesn't do destructuring, though, so I suppose it's not quite "do-it-all". Maybe someday I will integrate fare-matcher.
Yet Pascal just offered a portable implementation [of read-only variables]!
Here's mine. [snip]
Very cute. I might start using this.
-- Scott