What if you could use a `.` as a wildcard? I don’t think it would conflict with existing syntax, and it would avoid binding a usable identifier. It would be more obvious than nothing between the commas.
> On Aug 8, 2016, at 06:33, Cyril Auburtin <[email protected]> wrote: > > Just bumping this up > > Calling `foo(1)` where foo is defined with 3 arguments, lets the 2 others > undefined, this behavior is already a bit magic and similar to the behavior > of an array, so I still think foo(a,,b,,,c) should be like foo(...[a,,b,,,c]) > > Other example: > ``` > var m=new Map([[1], [2,], [3,7]]) // Map {1 => undefined, 2 => undefined, 3 > => 7} // here commas fantasies are allowed in arrays > m.set(3) // Map {1 => undefined, 2 => undefined, 3 => undefined} // setting > implicitely value as undefined > m.set(3, ) // not allowed, which should be m.set(...[3,]) > ``` > > and again, it would help for callbacks too, `something( ( , , thirdArg) => {} > )` > > I saw this https://jeffmo.github.io/es-trailing-function-commas/ > <https://jeffmo.github.io/es-trailing-function-commas/>, it seems like a > sub-case > > 2016-05-29 23:07 GMT+02:00 Renki Ivanko <[email protected] > <mailto:[email protected]>>: > One more similarity is that both function parameters and destructuring allow > default values: (foo = 1) vs [foo = 1]. > > > > On Sun, May 29, 2016 at 11:56 PM, Cyril Auburtin <[email protected] > <mailto:[email protected]>> wrote: > Since functions arguments is an array under the hood, they could 'more behave > the same' > > Both function arguments and arrays accept spreading: [1, 2, ...args] and > fn(1, 2, ...args) > > a function definition like (,i) => {}, would be the equivalent of var [,i] = > arguments > > an invocation fn(,,i) would be the equivalent of [,,i] > > It's possible with (...[,i]) => {}, (_,i)=>{} like Renki said, but slightly > less simply > > Are there possible issues with that 'extension' of function syntax? > > > 2016-05-29 21:32 GMT+02:00 Renki Ivanko <[email protected] > <mailto:[email protected]>>: > You could stop with "rare"; having to make up unused names is an obvious > smell in comparison. > > ```js > foo(UNUSED1, UNUSED2, x) > > foo(_, __, x) > > foo(,, x) > > foo(...[,, x]) > ``` > > The latter is shorter and more explicit and would not be any more confusing > if it became common. > > > On Sun, May 29, 2016 at 8:46 PM, Bob Myers <[email protected] > <mailto:[email protected]>> wrote: > Eliding array elements is not "similar" to eliding function formal > parameters. The latter is extremely rare, hardly readable, confusing, > bug-prone, and unnecessary because there is already a "standard way" which is > to use any old parameter name you want: > > ```js > function foo(UNUSED1, UNUSED2, x) > ```` > > Most linters will not complain, or there are ways to shut them up if they do. > > If you want to throw away an argument, just throw it away. > > ```js > function skipFirstParam(fn) { return ((first, ...args) => fn(...args)); } > > `[1,2,3,4].map(skipFirstParam(i => i)); > > ``` > > Or use Renki's solution. > > Bob > > > On Sun, May 29, 2016 at 9:23 PM, Cyril Auburtin <[email protected] > <mailto:[email protected]>> wrote: > Similarly to: > > `var [,x,,y] = [1,2,3,4,5,6];` > > I think it could be interesting to let a field empty in function arguments > > `[1,2,3,4].map( (,i) => i )`, `Array.from({length:10}, (,i) => i )` > > `function test(a,,b) { }` > > (but that would alter the current parsing, that doesn't allow it) > > Currently I often use `_` as a way to mark ignored fields, but when there are > more than 1 you need another identifier. A standard way would be interesting > rather > > _______________________________________________ > es-discuss mailing list > [email protected] <mailto:[email protected]> > https://mail.mozilla.org/listinfo/es-discuss > <https://mail.mozilla.org/listinfo/es-discuss> > > > > _______________________________________________ > es-discuss mailing list > [email protected] <mailto:[email protected]> > https://mail.mozilla.org/listinfo/es-discuss > <https://mail.mozilla.org/listinfo/es-discuss> > > > > > > _______________________________________________ > es-discuss mailing list > [email protected] > https://mail.mozilla.org/listinfo/es-discuss
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

