On Jul 29, 2010, at 9:47 AM, Shriram Krishnamurthi wrote:
> Responding to Everett's suggestion:
>>>> I don't understand why not write a lexer, since replacing "do: ()" with
>>> "{}" is the most natural and readable thing to do.
>>>> I really don't want to touch the lexer level.
>>>> Until this morning, I didn't know how to check for { ... }, which is
>> why I had the do: keyword. It appears that I can get rid of it. I
>> have to decide now whether I want to. I'll think about that.
>> I can't get rid of it. Currently,
>> do: { f(x) }
>> is unambiguously a single-statement/expression begin, without having
> to look at subsequent context. If I make it optional, then the same
> phrase could be either the interpretation above, or a begin with a
> single expression, but where that expression is an application, whose
> function position is a complex expression (namely, f(x)).
>> In general, I am very wary of anything optional.
>> Shriram
That's only true if {} count as parens too. My suggestion was that they ONLY count as a begin statement. I could live with "do: {}", I was just trying to reduce the typing and number of keywords a bit.
-Everett