The backslash has actually been one of the earlier options if I remember 
correctly.
I definitely prefer the `fn` keyword as it’s only one character more but adds a 
better visual hint to the arrow function.

I’m also not sure why we’d choose a different arrow (`==>` or `~>`) when the 
ambiguity is solved through either a the backslash or the `fn` keyword.


> On 15 Jun 2017, at 17:00, Björn Larsson <bjorn.x.lars...@telia.com> wrote:
> 
> Den 2017-06-15 kl. 15:34, skrev Fleshgrinder:
> 
>> On 6/15/2017 3:29 PM, Björn Larsson wrote:
>>> Seems like the constraints on this feature makes it hard to fly, i.e.
>>> 1. Not a hackish implementation
>>> 2. Non ambiguous syntax
>>> 3. Easy to parse & use syntax for the human
>>> 
>>> HackLang then prioritised 2 & 3 making the end-users happy, but
>>> had to sacrifise a clean implementation. Any clue if this was a one-
>>> time effort once it was done or something with a lot of drawbacks
>>> in terms of maintenance, performance, evolution etc?
>>> 
>>> r//Björn
>>> 
>> On Reddit someone proposed the following syntax:
>> 
>>     \() => echo 'Hello, World'
>> 
>> It is used by Haskell if I remember correctly and should not be
>> ambiguous since `(` is not allowed in names of classes or functions. It
>> actually aligns well with functions that are called with a
>> fully-qualified name (e.g. `\printf('')`).
>> 
>> Not sure if it would still require hacks though.
>> 
> So applying that one on Sara's example becomes with some
> options for the arrow:
> 8. $someDict->map(\($v) => $v * 2)->filter(\($v) => $v % 3);
> 9. $someDict->map(\($v) ==> $v * 2)->filter(\($v) ==> $v % 3);
> 10. $someDict->map(\($v) ~> $v * 2)->filter(\($v) ~> $v % 3);
> 
> Interesting :)
> 
> r//Björn
> 
> -- 
> PHP Internals - PHP Runtime Development Mailing List
> To unsubscribe, visit: http://www.php.net/unsub.php 
> <http://www.php.net/unsub.php>

Reply via email to