Re: [RFC][Discuss] Arrow Functions

From: Date: Sat, 04 Feb 2017 18:04:43 +0000
Subject: Re: [RFC][Discuss] Arrow Functions
References: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20  Groups: php.internals 
Request: Send a blank email to internals+get-98193@lists.php.net to get a copy of this message
> I personally don’t see a huge use for this in my own work actually, I’m just trying to make > sure that something I will likely have to live with from *other* developers isn’t impossible to > read, that’s all. But I agree that most people seem focussed on the actual syntax. Well, I do. We use closures quite extensively at our workplace since we’ve started using the functional PHP library: https://github.com/lstrojny/functional-php Here’s a silly Swift vs. PHP example: ```Swift let x = 4 let y = [1, 2, 3, 4]     .map { $0 * x }     .filter { $0 > x } ``` ```PHP $x = 4; $y = [1, 2, 3, 4]; $y = map($y, function ($val) use ($x) { return $val * $x; }); $y = filter($y, function ($val) use ($x) { return $val > $x; }); ``` Don’t you agree that the Swift example is much more readable? I’d also like to say that this is a rather fair example. The PHP code can get worse when using longer variable names, more captured variables and type hints. > All I would ask is that one of the vote choices for syntax is to re-use the existing function > keyword. Fair enough. The voting about syntax was only a suggestion though. Levi has never agreed to that :) Cheers On 4 Feb 2017, 17:26 +0100, Stephen Reay <php-lists@koalephant.com>, wrote: > Hi Ilija, > > > On 4 Feb 2017, at 23:19, ilija.tovilo@me.com wrote: > > > > Hey Stephen > > > > > You’re really starting to lose me now. You want types but don’t want to define > > > them, and you’re somehow mixing phpdoc into this. > > > > Because we use PHPDoc to provide type hints to the IDE where PHP doesn’t support them > > yet (variables and properties). > > > > > Currently PHP has zero support for Foo[] (or array<Foo> if you prefer) as a > > > type hint. In *theory* an IDE could use the calling scope’s context (assuming the source of the > > > array is purely local or from arguments/return values that are typed) to infer types, but I > > > haven’t seen it, and I would likely still use type hints, to cover the case where something > > > changes elsewhere. > > > > That’s because you don’t trust it ;) You should be able to trust it. > > > > But anyway, that’s beside the point. Let’s get back to the RFC. > > > > > What were you saying about not everyone being the same? > > > > What I’m saying is that maybe it would make sense to vote for syntax, as this would make > > most people happy. > > People seem to complain about that the most but agree with the general idea of the RFC. > > > > I personally don’t see a huge use for this in my own work actually, I’m just trying to make > sure that something I will likely have to live with from *other* developers isn’t impossible to > read, that’s all. But I agree that most people seem focussed on the actual syntax. > > All I would ask is that one of the vote choices for syntax is to re-use the existing function > keyword. > > Cheers > > Stephen >

« previous php.internals (#98193) next »