Swift style syntax
Frankie Bagnardi
f.bagnardi at gmail.com
Mon Oct 12 01:58:06 UTC 2015
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 <caitpotter88 at gmail.com>
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 <alex at weej.com> 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 <me at azimi.me> 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
>> es-discuss at mozilla.org
>> https://mail.mozilla.org/listinfo/es-discuss
>>
>>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
>
> _______________________________________________
> es-discuss mailing list
> es-discuss at mozilla.org
> https://mail.mozilla.org/listinfo/es-discuss
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.mozilla.org/pipermail/es-discuss/attachments/20151011/a60d9ac3/attachment.html>
More information about the es-discuss
mailing list