Re: [RFC]Discuss] Syntax for Arrow Functions
| From: | Stephen Reay | Date: | Tue, 06 Jun 2017 04:38:54 +0000 |
| Subject: | Re: [RFC]Discuss] Syntax for Arrow Functions | ||
| References: | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-99386@lists.php.net to get a copy of this message | ||
>
> On 6 Jun 2017, at 03:18, Björn Larsson <bjorn.x.larsson@telia.com> wrote:
>
> Den 2017-06-05 kl. 21:23, skrev Ryan Pallas:
>
>> On Mon, Jun 5, 2017 at 1:09 PM, Fleshgrinder <php@fleshgrinder.com> wrote:
>>
>>> On 6/5/2017 9:03 PM, Ryan Pallas wrote:
>>>> However, ($obj) -> $var is valid variable property syntax.
>>>>
>>> Gosh, we really have support for everything. :D That one is even very
>>> important for stuff like
(new A)->f().
>>>
>>> How about ~> which I at least cannot think of any place it is used at
>>> all. ~ in binary negation and the only place we use it (I checked the
>>> language parser this time to make sure).
>>>
>>> I really dislike the ==> idea. One of the main reasons here is to write
>>> less and it looks too much like => or even >= which I really don't like.
>>>
>>> ($a, $b) ==> $a >= $b
>>>
>>> ($a, $b) ~> $a >= $b
>>>
>>>
>> I can get behind using the tilde. Keeps it concise, but it's visually
>> different than existing syntax, making it easier to recognize (IMO).
>>
> I think ~>was a proposal in the short closure RFC. Personally I liked it,
> but could also live with ==>. I recall there was a discussion about how
> easy it was to use tilde on different keyboards / languages. So at that
> point the discussion was about either ~> or ==> for syntax.
>
> But back to Levi's list it looks like, at least to me that option 2 & 4 are
> off the table. Leaving option 3 & 1, maybe also option 5.
>
> Do you think this is a reasonable assumption?
>
> Also some other proposals has arisen, like using lamda instead of fn as
> a keyword and lastly the ~> one.
>
> r//Björn
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
As someone who sees limited appeal in short closures (Ok, they may make for slightly simpler
constructs that are slightly too complex for a regular “collect” type collection method), I see
a *lot* of people spending a *lot* of time to save typing 8 characters (function).
If this feature truly is about making it easier to read, then that should be your goal: make it easy
to mentally parse, basically instantly. Given that even proponents of the approach are admitting the
syntax can get quite hard to understand quickly, perhaps it’s time to accept that “more
characters” !== “harder to read & understand” and importantly, “less characters” !==
“easier to read & understand”.
How long does it take someone to type function? A second, maybe two? How many times are other people
going to read that, once it’s been written?
Or maybe I’ve got it all wrong, and the goal is literally to save 8 keystrokes. If that’s the
case, please update the RFC accordingly, to make it clear what the motivations are
Cheers
Stephen