[bitc-dev] Syntax Poll: Scoping Syntax
Jonathan S. Shapiro
shap at eros-os.com
Thu Mar 5 13:43:41 EST 2009
On Thu, Mar 5, 2009 at 1:33 PM, Pal-Kristian Engstad
<pal_engstad at naughtydog.com> wrote:
> I've used OCaml a lot, but I actually prefer Haskell's let binding.
>
> In Haskell, I can write:
>
> let { x = 1; y = 2 } in x + y
>
> let x = 1; y = 2 in x + y
>
> let x = 1
> y = 1
> in
> x + y
This is a completely separate issue. For the moment, the question I
want to focus on is how to separate the end of the expression that is
scoped by the let from the end of the entire let. Let's stick with
that.
I have no position on the many Haskell syntax variants, except that
two choices are almost always worse than one, even if the one choice
is a bad one.
> Personally, I hate
> that OCaml has reserved the word "and".
I agree, and I had noted this. However, the situation for BitC is that
AND must be a reserved word in any case, because BitC does eager
evaluation. Because of this, it may be possible to syntactically
distinguish
expr AND expr
expr AND bindingPattern = expr
in the parser. If that is the case, then using and as a keyword for
collections of bindings would not preclude use in expressions. I
haven't yet had a chance to look at this. I agree that clobbering AND
seems very unfortunate. I suggest that before we get into a holy war
over this we learn what is easily feasible in the parser.
The meta-issue is that whatever syntax we use for sequencing of
bindings must be distinguishable from the syntax for sequencing of
expressions.
shap
More information about the bitc-dev
mailing list