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 _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev