Hacker News new | past | comments | ask | show | jobs | submit login

It does, but there are still many different purposes. In JS:

( can mean: function call, part of an expression to be evaluated first, regex capture group

{ can mean: scope [of ... loop, if, lambda, function etc.], object definition, string interpolation code i.e. ${..}, class definition

There are probably other things I am not thinking of.

The one that trips me in JS is code like x.map(v => {...v, v2}) breaks because the compiler sees the { as the beginning of a scope, not the object definition I intended.

The working solution is x.map(v => ({...v, v2}))

But x.map(v => v+1) is allowed.

I don't think the compiler could figure out what you meant because an object definition might be a lambda function body. For example { myvar } can be both an object definition, and a function that returns myvar.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: