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

Reply via email to