Robby Findler wrote:
> I think Mike would be happy merely renaming named let to something
> else, not taking it away. Do you really care if it begins with the
> letters l-e-t or some other letters (legacy code aside)?
Yes. Whoever came up with the idea of allowing labeling of a let form
did a great service to the language. I also took a while to get used to
it, but I wouldn't want to go back. I strenuously object to it being
considered a wart.
Another way to look at the issue is to see the base form of let as
the special/degenerate case where the let is not labeled.
Correspondingly, it would be nice to have lambda be name-able, but that
would not work with the variable argument syntax. It also hits a sweet
spot where you don't need mutual recursion.
Names do matter, and I think being able to bind the entry point as
well as the arguments is elegant. How does removing this expressiveness
improve the language?
I think rec or recur is pretty awful for the name of a binding form.
In fact, I use (let recur (...) ...) and (let loop (...) ...) to indicate
what kind of recursion the procedure engages in, mostly because those
names make sense as _actions_, not as binders, if that makes sense.
I don't see why newbies not understanding how this works lessens its
value. After all, the discovery that lambdas are just labels with
arguments is fundamental to Scheme.
Lynn
_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss