On Wed, Mar 4, 2009 at 5:58 PM, Geoffrey Irving <[email protected]> wrote: > I'm not sure about the details of how the stock compiler does this, > but it's conceptually just precedence. ";" has higher precedence than > "let", so the result is > > let BINDING in (EXPR; let BINDING in EXPR)
In this case it doesn't actually matter, because the computational results are identical. But this is awful, because given the precedence rules I can't see (syntactically) how one could even construct (let BINDING in EXPR) ; (let BINDING in EXPR) except by explicit introduction of begin/end pairs. The outcome has the right effect mainly because the ordering doesn't change the computation, but this is decidedly perverse. Hmm. So I'm wondering whether it is *always* the case that begin let BINDING in e1 end ; e2 can always be re-written as let BINDING in e1 ; e2 correctly. It seems to me that this is likely to make reduced closure construction harder. shap _______________________________________________ bitc-dev mailing list [email protected] http://www.coyotos.org/mailman/listinfo/bitc-dev
