Re: Re: [RFC][Discuss] Arrow Functions

From: 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 > >

« previous php.internals (#98145) next »