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

Reply via email to