<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<div name="messageBodySection">
<div dir="auto">
<div dir="auto">
<blockquote type="cite" class="spark_quote" style="caret-color: rgb(213, 218, 222); margin: 5px; padding-left: 10px; border-left-width: thin; border-left-style: solid; border-left-color: rgb(26, 188, 156);">
<div class="gmail_quote" dir="auto">
<blockquote class="gmail_quote spark_quote" style="margin: 5px; padding-left: 10px; border-left-width: thin; border-left-style: solid; border-left-color: rgb(230, 126, 34);">I do find it surprising that property access isn't addressed there,<br />
but it seems like it was likely just overlooked - it has no mention in<br />
the repo, in the open issues, or even in the closed issues or any of<br />
the open or closed pull requests.</blockquote>
</div>
</blockquote>
</div>
Actually, they do seem to address it here as a non-goal:
<div dir="auto"><a href="https://github.com/tc39/proposal-partial-application#support-for-receiver-placeholder">https://github.com/tc39/proposal-partial-application#support-for-receiver-placeholder</a><br /></div>
<div dir="auto"><br /></div>
<div dir="auto">If we had that, then we wouldn’t need a specific syntax for property accessors. However, arrow functions are already pretty compact, so I don’t feel a strong desire for this `receiver placeholder` syntax or something like Kotlin’s `it`. I know the same logic applies to a `property accessor` proposal, but accessing properties in JS is extremely common and in my opinion, deserving of a syntax shorthand.</div>
<div dir="auto"><br /></div>
<div dir="auto">--</div>
</div>
</div>
<div name="messageSignatureSection"><br />
<div class="matchFont">Agustín Zubiaga</div>
</div>
<div name="messageReplySection">On Dec 7, 2019, 3:04 PM -0500, Bob Myers <rtm@gol.com>, wrote:<br />
<blockquote type="cite" class="spark_quote" style="margin: 5px 5px; padding-left: 10px; border-left: thin solid #1abc9c;">
<div dir="ltr">Can you clarify in what sense you see this as a special case of that proposal?
<div>To put it in very simple terms, we would like to do something like `array.map(.name)`.</div>
</div>
<br />
<div class="gmail_quote">
<div dir="ltr" class="gmail_attr">On Tue, Dec 3, 2019 at 3:33 AM Isiah Meadows <<a href="mailto:contact@isiahmeadows.com">contact@isiahmeadows.com</a>> wrote:<br /></div>
<blockquote class="gmail_quote spark_quote" style="margin: 5px 5px; padding-left: 10px; border-left: thin solid #e67e22;">BTW, all this is very much just a special case of this (existing stage<br />
1) proposal, and is part of why it exists:<br />
<a href="https://github.com/tc39/proposal-partial-application" rel="noreferrer" target="_blank">https://github.com/tc39/proposal-partial-application</a><br />
<br />
I do find it surprising that property access isn't addressed there,<br />
but it seems like it was likely just overlooked - it has no mention in<br />
the repo, in the open issues, or even in the closed issues or any of<br />
the open or closed pull requests.<br />
<br />
-----<br />
<br />
Isiah Meadows<br />
<a href="mailto:contact@isiahmeadows.com" target="_blank">contact@isiahmeadows.com</a><br />
<a href="http://www.isiahmeadows.com" rel="noreferrer" target="_blank">www.isiahmeadows.com</a><br />
<br />
On Tue, Dec 3, 2019 at 5:43 AM Michael Luder-Rosefield<br />
<<a href="mailto:rosyatrandom@gmail.com" target="_blank">rosyatrandom@gmail.com</a>> wrote:<br />
><br />
> At the cost of adding more code, but giving more power, perhaps what we want is something akin to Kotlin's `it` keyword:<br />
> <a href="https://kotlinlang.org/docs/reference/lambdas.html?_ga=2.238822404.500195435.1575368476-1345353619.1575368476#it-implicit-name-of-a-single-parameter" rel="noreferrer" target="_blank">https://kotlinlang.org/docs/reference/lambdas.html?_ga=2.238822404.500195435.1575368476-1345353619.1575368476#it-implicit-name-of-a-single-parameter</a><br />
><br />
> it: implicit name of a single parameter<br />
> It's very common that a lambda expression has only one parameter.<br />
> If the compiler can figure the signature out itself, it is allowed not to declare the only parameter and omit ->. The parameter will be implicitly declared under the name it:<br />
> ints.filter { it > 0 } // this literal is of type '(it: Int) -> Boolean'<br />
><br />
><br />
> What we'd want is something concise and non-ambiguous to fulfill the same role; something that cannot currently be a valid identifier, maybe. This is the point where I start scanning the keyboard for underutilised symbols... I'm thinking the hash symbol would work. To re-use the original example:<br />
><br />
> ```js<br />
> const activeProducts = products.filter(#.active);<br />
> const productNames = products.map(#.name);<br />
> const sortedProducts = _.sortBy(products, #.name);<br />
> const { true: activeProducts, false: inactiveProducts } = _.groupBy(products, #.active);<br />
> ```<br />
><br />
> It makes intuitive sense in 2 ways, I think; # makes you think of the object hash you're extracting a property from, and also is familiar as something's id from CSS selectors.<br />
><br />
> We could also extend it to represent multiple parameters: # is also aliased as #0, the 2nd parameter is #1, etc.<br />
><br />
> Further, dynamic properties would work too: `const fooProducts = products.filter(#[foo]);<br />
> --------------------------<br />
> Dammit babies, you've got to be kind.<br />
><br />
><br />
> On Mon, 2 Dec 2019 at 22:32, Waldemar Horwat <<a href="mailto:waldemar@google.com" target="_blank">waldemar@google.com</a>> wrote:<br />
>><br />
>> On 11/24/19 9:17 PM, Bob Myers wrote:<br />
>> > FWIW, the syntax `.propName` does appear to be syntactically unambiguous.<br />
>><br />
>> It conflicts with contextual keywords such as `new . target`.<br />
>><br />
>>      Waldemar<br />
>> _______________________________________________<br />
>> es-discuss mailing list<br />
>> <a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a><br />
>> <a href="https://mail.mozilla.org/listinfo/es-discuss" rel="noreferrer" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br />
><br />
> _______________________________________________<br />
> es-discuss mailing list<br />
> <a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a><br />
> <a href="https://mail.mozilla.org/listinfo/es-discuss" rel="noreferrer" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br />
_______________________________________________<br />
es-discuss mailing list<br />
<a href="mailto:es-discuss@mozilla.org" target="_blank">es-discuss@mozilla.org</a><br />
<a href="https://mail.mozilla.org/listinfo/es-discuss" rel="noreferrer" target="_blank">https://mail.mozilla.org/listinfo/es-discuss</a><br /></blockquote>
</div>
_______________________________________________<br />
es-discuss mailing list<br />
es-discuss@mozilla.org<br />
https://mail.mozilla.org/listinfo/es-discuss<br /></blockquote>
</div>
</body>
</html>