Jason Orendorff wrote:
On Sat, Sep 22, 2012 at 11:21 AM, Brendan Eich<[email protected]>
wrote:
Perhaps the thing to do is keep to Python: for+ if? if you get my
pidgin-EBNF.
But that isn't Python's syntax.
Python's comprehensions are: for (for|if)*
Oh! I didn't know you could put if in the middle (or I forgot, more
likely...).
Haskell's comprehensions are: (for|if|let)*
This is what I would prefer for JS.
Clojure's comprehensions are: for+ (if|while|let)*
Clojure puts the expression at the right, which I like, for the
reasons Allen mentioned.
We could do whatever we like but it will be a pain to parse both old and
new in SpiderMonkey!
Actually I think we should not change lightly, not just based on
SpiderMonkey, but on SM + Rhino + (Python being closer to JS in
community intersection size than Clojure).
CoffeeScript's comprehensions are: for when?
Only a single 'for' clause. It can't be used to flatten an array of
arrays.
Yeah, not as strong a precedent -- we should treat JS as big brother
here, over time.
I actually kind of like Allen's argument about not wanting to
encourage the use of array comprehensions for complicated use cases.
However I'm not sure how that squares with a distaste for nanny syntax
restrictions!
Yup. I thought perhaps Allen left out a "not" or otherwise inverted his
meaning, though.
/be
_______________________________________________
es-discuss mailing list
[email protected]
https://mail.mozilla.org/listinfo/es-discuss