Re: Re: [RFC][Discuss] Arrow Functions
| From: | Niklas Keller | Date: | Fri, 03 Feb 2017 20:37:21 +0000 |
| Subject: | Re: Re: [RFC][Discuss] Arrow Functions | ||
| References: | 1 2 3 4 5 6 7 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-98145@lists.php.net to get a copy of this message | ||
2017-02-03 21:23 GMT+01:00 Levi Morrison <levim@php.net>:
> On Fri, Feb 3, 2017 at 12:18 PM, Andrea Faulds <ajf@ajf.me> wrote:
> > Hi David,
> >
> > David Rodrigues wrote:
> >>
> >> Hello folks!
> >> I just not understand why "function" should be abbreviated. It's about
> >> "how
> >> less character better"? I don't see it too much on PHP. I guess that is
> >> more simple keep what exists current "function", that all knows about
> >> (that
> >> should be better than the next example):
> >>
> >> $mapped = array_map(function($x) => $x + $y); // vs current:
> >> $mapped = array_map(function($x) use($y) { return $x + $y });
> >
> >
> > I feel the same way. It would be nice to have shorter syntax, but it
> > sacrifices readability and familiarity here, and adds yet another new
> > keyword.
> >
> > It also feels inconsistent… isn't "fn" just short for
> > "function"? Why is
> it
> > exclusive to the => syntax?
>
> This is not exactly on topic... unless you are implying you'd prefer
> the
|$x| => $x + $y? Maybe you missed [this][1] message?
>
Why is using "function" instead of "fn" not on topic?
Thanks to everyone who has participated in the discussion thus far.
> Primarily the feedback has been directed at the fn keyword. Let
> me
> provide two benefits and drawbacks of using fn as a keyword:
> 1. fn is searchable in search engines and in our manual
>
Just as "php function" is, too:
http://php.net/manual/en/language.functions.php
> 2. Is more intuitive than just syntax
>
As is "function", too. With the added benefit that people are already
familiar with it.
> However, fn does have downsides:
> 1. Can break existing code
>
Which doesn't happen with reusing "function".
> 2. We already have a similar keyword function
>
Right, so why not use that?
> To that end, I'd like to gauge interest in a pure syntax based
> alternative that is similar to Rust and Ruby.
> Instead of:
> fn(params) => expr
> What about:
> |params| => expr
> This trades the advantages of the keyword for the advantages of pure
> syntax, and happens to be two characters shorter. To be explicit:
> 1. Preserves 100% backwards compatibility
> 2. Avoids having two keywords that both mean "function"
> 3. Is not easily searchable in engines or in the manual
> 4. Is a tad bit shorter
>
1, 2, and 3 are also solved by using "function".
4 is counting characters instead of focusing on readability.
There are more drawbacks to that syntax like no parameters looking pretty
weird: || =>
Regards, Niklas
> [1]: http://news.php.net/php.internals/98136
>
> --
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php
>
>