> I believe the idea was not to convert people who like s-exprs but rather > to attract all those other programmers (including beginners) who don't > like them. (It might also help convince older CS dept people to allow > changing the intro CS course to H2DP using a non-parenthesis syntax.)
Precisely! Couldn't have put it better -- thanks. > 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. > It also would allow > "when:" to expect one argument by default since "when: {}" is easy to > write. That would be fine. I'll think about that, too. > Infix notation can be achieved unambiguously if you use LL(1) with > backtracking ...which I didn't want to do. Pedagogically, it has been immensely valuable to explain to kids that + and - aren't some special thing, but are just mere operators -- and so are string-append and image-overlay and so on. Plus, there isn't much arithmetic in many Scheme programs, which means the quantity of actual infix is small. > Did the proposal address how quoting/unquoting could be done on P4P > syntax (for macros, etc.), or how to make a list? I suppose "list(a, b, > c)" would work, but do we not have "'(a, b, c)" or something too? I had some trouble getting quote to work. It seems like it should not be a problem. But it's on my list. I haven't thought about unquoting, though it should be possible in principle. (It's always been on the todo list at the top of the implementation file.) Shriram _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/dev