[bitc-dev] OCaml syntax question
Jonathan S. Shapiro
shap at eros-os.com
Wed Mar 4 18:44:07 EST 2009
On Wed, Mar 4, 2009 at 5:58 PM, Geoffrey Irving <irving at naml.us> 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
More information about the bitc-dev
mailing list