Operator.plus? I'd be totally ok with that. On Monday, 12 October 2015, Jordan Harband <[email protected]> wrote:
> For that, the question would arise: is `scores.reduce((a, b) => a + b)` > and `bools.filter(x => !x)` so troublesome to write that it's worth the > added complexity to the language? "it would be nice" generally doesn't > outweigh increased implementation and maintenance cost to implementors, > learners, tool creators, etc. > > On Mon, Oct 12, 2015 at 10:20 AM, Mohsen Azimi <[email protected] > <javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote: > >> > reversed = names.sort(>) >> > This might actually be possible - I can't think of any ambiguous >> situations for passing operators as if they were first class functions. If >> it is possible, I'd like to see this done. >> >> Yes, it would be really cool if operators can be used as function. For >> example in Swift you can do this: >> >> ``` >> let scores = [10, 13, 15, 8, 9, 19, 20, 4, 6]; >> >> let sum = scores.reduce(0, combine: +) // 104 >> ``` >> >> Or this: >> >> ``` >> var bools = [true, false, false, true, true]; >> >> bools.filter(!) // [false, false] >> ``` >> >> >> On Mon, Oct 12, 2015 at 7:29 AM Andrea Giammarchi < >> [email protected] >> <javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote: >> >>> for "historical record" sake that silly trick works even in a more >>> meaningful way with RegExp replacements :-) >>> >>> ```js >>> // before >>> 'str'.replace(/(some)(thing)/, function ($0, $1, $2) { >>> // boring $1 $2 like RegExp.$1 and RegExp.$2 >>> }); >>> >>> // now >>> 'str'.replace(/(some)(thing)/, (...$) => { >>> // we have $[1], $[2] ... yaiiii >>> }); >>> ``` >>> >>> Regards >>> >>> >>> >>> On Mon, Oct 12, 2015 at 7:40 AM, Isiah Meadows <[email protected] >>> <javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote: >>> >>>> Interesting trick, Andrea. Never thought of that before. >>>> >>>> On Mon, Oct 12, 2015, 02:31 Andrea Giammarchi < >>>> [email protected] >>>> <javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote: >>>> >>>>> ... sort of (no pun intended) >>>>> >>>>> ```js >>>>> let sorted = names.sort((...$) => $[0] > $[1]); >>>>> ``` >>>>> >>>>> Regards >>>>> >>>>> On Mon, Oct 12, 2015 at 2:58 AM, Frankie Bagnardi < >>>>> [email protected] >>>>> <javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote: >>>>> >>>>>> I don't think there's much value in this. Also sort is a bad example >>>>>> because it'd look like this, and there's no nifty shortcut answer to it. >>>>>> >>>>>> ```js >>>>>> names.sort((a, b) => a < b ? 1 : a > b ? -1 : 0); >>>>>> ``` >>>>>> >>>>>> In most cases you save a couple characters, but you can just use >>>>>> x/y/a/b/f/g/n/xs/xss for variable names in arrow functions instead of the >>>>>> $0 (which would likely be \0 in js). >>>>>> >>>>>> >>>>>> >>>>>> On Sun, Oct 11, 2015 at 3:26 PM, Caitlin Potter < >>>>>> [email protected] >>>>>> <javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote: >>>>>> >>>>>>> In the case of sorting, are arrow functions not good enough? Or are >>>>>>> we really asking for full continuation support >>>>>>> >>>>>>> On Oct 11, 2015, at 5:51 PM, Alexander Jones <[email protected] >>>>>>> <javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote: >>>>>>> >>>>>>> IMO this is a good idea. When it's abundantly clear from context, >>>>>>> I've already been naming my arrow function params _ if singular, and >>>>>>> _1, _2 >>>>>>> etc if several. As always, picking some punctuation straight from the >>>>>>> scarce and sacred set of remaining ASCII symbols is going to be tricky. >>>>>>> (If >>>>>>> only we could just go APL on this!) >>>>>>> >>>>>>> On 11 October 2015 at 16:45, Mohsen Azimi <[email protected] >>>>>>> <javascript:_e(%7B%7D,'cvml','[email protected]');>> wrote: >>>>>>> >>>>>>>> Is it possible to extend JavaScript syntax to support Swift style >>>>>>>> block syntax[1]? >>>>>>>> >>>>>>>> In Swift it's possible to omit return keyword >>>>>>>> ``` >>>>>>>> >>>>>>>> 1. reversed = names.sort( { s1, s2 in s1 > s2 } ) >>>>>>>> >>>>>>>> ``` >>>>>>>> >>>>>>>> or omit argument declaration like this: >>>>>>>> >>>>>>>> ``` >>>>>>>> >>>>>>>> 1. reversed = names.sort( { $0 > $1 } ) >>>>>>>> >>>>>>>> ``` >>>>>>>> >>>>>>>> or apply an operator to arguments of a function >>>>>>>> >>>>>>>> ``` >>>>>>>> >>>>>>>> 1. reversed = names.sort(>) >>>>>>>> >>>>>>>> ``` >>>>>>>> We have the first feature in ES2015 already: >>>>>>>> >>>>>>>> ``` >>>>>>>> let sorted = names.sort((a, b)=> a > b); >>>>>>>> ``` >>>>>>>> >>>>>>>> But for omitting argument declaration we need to find an >>>>>>>> alternative to $0, $1... since those are valid variable names in JS. >>>>>>>> Maybe >>>>>>>> we can use #0, #1... instead. >>>>>>>> >>>>>>>> This is very useful for functional programming aspect of JS. For >>>>>>>> example in a filter function: >>>>>>>> >>>>>>>> ``` >>>>>>>> let passed = objs.filter(#0.passed) >>>>>>>> ``` >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> [1][ >>>>>>>> https://developer.apple.com/library/ios/documentation/Swift/Conceptual/Swift_Programming_Language/Closures.html >>>>>>>> ] >>>>>>>> >>>>>>>> _______________________________________________ >>>>>>>> es-discuss mailing list >>>>>>>> [email protected] >>>>>>>> <javascript:_e(%7B%7D,'cvml','[email protected]');> >>>>>>>> https://mail.mozilla.org/listinfo/es-discuss >>>>>>>> >>>>>>>> >>>>>>> _______________________________________________ >>>>>>> es-discuss mailing list >>>>>>> [email protected] >>>>>>> <javascript:_e(%7B%7D,'cvml','[email protected]');> >>>>>>> https://mail.mozilla.org/listinfo/es-discuss >>>>>>> >>>>>>> >>>>>>> _______________________________________________ >>>>>>> es-discuss mailing list >>>>>>> [email protected] >>>>>>> <javascript:_e(%7B%7D,'cvml','[email protected]');> >>>>>>> https://mail.mozilla.org/listinfo/es-discuss >>>>>>> >>>>>>> >>>>>> >>>>>> _______________________________________________ >>>>>> es-discuss mailing list >>>>>> [email protected] >>>>>> <javascript:_e(%7B%7D,'cvml','[email protected]');> >>>>>> https://mail.mozilla.org/listinfo/es-discuss >>>>>> >>>>>> >>>>> _______________________________________________ >>>>> es-discuss mailing list >>>>> [email protected] >>>>> <javascript:_e(%7B%7D,'cvml','[email protected]');> >>>>> https://mail.mozilla.org/listinfo/es-discuss >>>>> >>>> >>> _______________________________________________ >>> es-discuss mailing list >>> [email protected] >>> <javascript:_e(%7B%7D,'cvml','[email protected]');> >>> https://mail.mozilla.org/listinfo/es-discuss >>> >> >> _______________________________________________ >> es-discuss mailing list >> [email protected] >> <javascript:_e(%7B%7D,'cvml','[email protected]');> >> https://mail.mozilla.org/listinfo/es-discuss >> >> >
_______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

