<html><body style="word-wrap: break-word; -webkit-nbsp-mode: space; -webkit-line-break: after-white-space; ">
<br><div><div>On Aug 20, 2008, at 12:51 PM, Shriram Krishnamurthi wrote:</div><br class="Apple-interchange-newline"><blockquote type="cite"><p style="margin: 0.0px 0.0px 0.0px 0.0px"><font face="Helvetica" size="3" style="font: 12.0px Helvetica">If LOCAL had a slightly less onerous syntax (the current syntax meets</font></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px"><font face="Helvetica" size="3" style="font: 12.0px Helvetica">one need superbly, but at the cost of some syntactic pain for people</font></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px"><font face="Helvetica" size="3" style="font: 12.0px Helvetica">writing a fresh LOCAL expression from scratch), would you object to it</font></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px"><font face="Helvetica" size="3" style="font: 12.0px Helvetica">supplanting LETREC?</font></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px; font: 12.0px Helvetica; min-height: 14.0px"><br></p> <p style="margin: 0.0px 0.0px 0.0px 0.0px"><font face="Helvetica" size="3" style="font: 12.0px Helvetica">S.</font></p> </blockquote></div><br> <span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div>I guess it depends on what you mean by "supplant". I wouldn't be happy to see LETREC disappear from the language, even if it weren't actually needed, or if it could be replaced with reasonable clarity by another construct (I wouldn't put LET ... SET! ... in this category). Maybe it's just a matter of tradition - or familiarity. In any case, one thing that bothers me is that LOCAL just seems too mysterious (or maybe it's really DEFINE that is mysterious). The Reference says that LOCAL is like LETREC "except that bindings are expressed in the same way as in top-level or in a module body". The Reference the points to section 1.2.3.6 on partial expansion, which certainly helps, and confirms intuition about what a self-referential DEFINE could possibly mean. When I look up LETREC, I read (section 2.9): "Similar to let, but the location for all ids are created first and filled with #<undefined>..." That doesn't sound the same at all. Or does it? If I think intuitively about how I might read a LETREC, I think about creating mental placeholders and filling them in as I go, so it kind of comes down to the same process. But enough of me thinking out loud.</div><div><br></div><div>The problems to me seem twofold: I never learned or used LOCAL when learning Scheme, and try to avoid using internal DEFINEs. I suspect a lot of other people are in the same boat. The other is that LOCAL and LETREC are generally presented in different ways, and it's not obvious that (or if) they are operationally equivalent. </div><div><br class="khtml-block-placeholder"></div><div><br></div></span></span><div><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-align: auto; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0; "><span class="Apple-style-span" style="border-collapse: separate; color: rgb(0, 0, 0); font-family: Helvetica; font-size: 12px; font-style: normal; font-variant: normal; font-weight: normal; letter-spacing: normal; line-height: normal; orphans: 2; text-indent: 0px; text-transform: none; white-space: normal; widows: 2; word-spacing: 0px; -webkit-border-horizontal-spacing: 0px; -webkit-border-vertical-spacing: 0px; -webkit-text-decorations-in-effect: none; -webkit-text-size-adjust: auto; -webkit-text-stroke-width: 0px; "><div>"Mathematics is the science of patterns."</div><div>--Lynn Arthur Steen, 1988</div><div><br></div><div><div><a href="http://www.gwoodhouse.com">http://www.gwoodhouse.com</a></div><div><a href="http://GregWoodhouse.ImageKind.com">http://GregWoodhouse.ImageKind.com</a></div><div><br></div></div><div><br class="khtml-block-placeholder"></div><br class="Apple-interchange-newline"></span><br class="Apple-interchange-newline"></span> </div><br></body></html>