Confused by this thread. > What if you could use a `.` as a wildcard?
You can already use `_` or anything you want, as was already pointed out in early iterations of this idea. > it would avoid binding a usable identifier. What is the problem with that? What is the problem that this proposal is trying to solve? Any chance we could move on? Bob On Wed, Aug 10, 2016 at 7:48 PM, Alan Johnson <a...@breakrs.com> wrote: > 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 <cyril.aubur...@gmail.com> 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/, it > seems like a sub-case > > 2016-05-29 23:07 GMT+02:00 Renki Ivanko <fatalis.erra...@gmail.com>: > >> 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 < >> cyril.aubur...@gmail.com> 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 <fatalis.erra...@gmail.com>: >>> >>>> 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 <r...@gol.com> 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 < >>>>> cyril.aubur...@gmail.com> 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 >>>>>> es-discuss@mozilla.org >>>>>> https://mail.mozilla.org/listinfo/es-discuss >>>>>> >>>>>> >>>>> >>>>> _______________________________________________ >>>>> es-discuss mailing list >>>>> es-discuss@mozilla.org >>>>> https://mail.mozilla.org/listinfo/es-discuss >>>>> >>>>> >>>> >>> >> > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org > https://mail.mozilla.org/listinfo/es-discuss > > > > _______________________________________________ > es-discuss mailing list > es-discuss@mozilla.org > https://mail.mozilla.org/listinfo/es-discuss > >
_______________________________________________ es-discuss mailing list es-discuss@mozilla.org https://mail.mozilla.org/listinfo/es-discuss