On Sun, Apr 14, 2019, at 11:52 AM, Nikita Popov wrote:

> So, there's been quite a bit of extra discussion here... unfortunately I
> can't say that it really clarified anything, we're still circling around
> different syntax choices, with the main contenders being fn, \ and ==>.
> 
> fn($x) => $x
> fn($x, $y) => $x*$y
> 
> \$x => $x
> \($x, $y) => $x*$y
> 
> $x ==> $x
> ($x, $y) ==> $x*$y
> 
> I think the main qualities of these possibilities are:
> 
>  * Implementation complexity: fn and \ are easy, ==> is hard (lexer hack).
>  * Availability of reduced syntax: \ an ==> have a special single-argument
> syntax, fn doesn't.
>  * Obviousness/readability: fn and ==> are obvious, while \ is not.
> Especially \$x => $x looks quite obscure to the uninitiated (is that a
> variable escape, like it would be in strings?)
> 
> At this point I'm considering to either a) move forward with fn() as the
> choice I'd consider most likely to gather a consensus or b) have a
> secondary three-way vote between these three syntax choices.
> 
> Nikita

I was under the impression from your earlier comments that ==> made the lexer 
too unhappy to even consider.  Is that not the case?

>From a usability POV, I think ==> has the edge; it's reasonably 
>self-documenting and has a short-circuit version that is still highly readable 
>and not confusing.  It also fits the "think of it as an expression not a 
>function call" mindset, which is important.  The only downside is the 
>implementation complexity.  I think you have final call on whether that would 
>be too-ugly implementation-wise.

If it doesn't make the lexer too unhappy ==> is my preference, I think.  \$x 
I'd probably get used to, even if it is a bit ugly.  fn() is the "safe" option: 
Most verbose but keeps the lexer happy.

--Larry Garfield

-- 
PHP Internals - PHP Runtime Development Mailing List
To unsubscribe, visit: http://www.php.net/unsub.php

Reply via email to