On 6/5/2017 7:55 PM, Rowan Collins wrote:
> I think it's not just a case of implementation problems, it's actually 
> ambiguous with current syntax:
> 
> $foo = array( ($x) => 42 );
> 
> Sure, those inner brackets are redundant, so it's not likely to break much 
> actual code, but it's kind of weird to have this one case magically turn into 
> a closure, when anything else you put in those brackets would just be used as 
> the array key:
> 
> $foo = array( f($x) => 42 );
> $foo = array( ($x+1) => 42 );
> $foo = array( (42) => $x );
> $foo = array( (X) => 42 );
> $foo = array( ($x) => 42 );
> $foo = array( ("$x") => 42 );
> 
> Even if we could teach the parser to understand it, I'd personally be against 
> it for the difficulty of *humans* parsing it. I find shorthand closures hard 
> enough to read anyway, especially when people suggest things like ($x) => 
> ($y) => $x * $y * $z;
> 
> Regards,
> 

Ah thanks, yeah, that was the problem.

At trivago we have such a super fancy ES6 code base where everything is
done in a super cryptic syntax, so that absolutely nobody who is not
used to reading this all day has a chance to understand a single thing.
So, yeah, I completely agree with you on everything.

That being said, they are handy if not overused, like so many features. :)

The pipes should still be in the game.

    $foo = array( |$x| => 42 );

-- 
Richard "Fleshgrinder" Fussenegger

Attachment: signature.asc
Description: OpenPGP digital signature

Reply via email to