On Fri, Jun 9, 2017 at 7:23 AM, Björn Larsson <bjorn.x.lars...@telia.com> wrote:
> If I take the liberty in using the example above on our option list:
> 1. $someDict->map(fn($v) => $v * 2)->filter(fn($v) => $v % 3);
> 2. $someDict->map(function($v) => $v * 2)->filter(function($v) => $v % 3);
> 3. $someDict->map($v ==> $v * 2)->filter($v ==> $v % 3);
> 4. $someDict->map(($v) => $v * 2)->filter(($v) => $v % 3);        //
> Ambiguous
> 5. $someDict->map([]($v) => $v * 2)->filter([]($v) => $v % 3);
>
> Old proposals:
> 6. $someDict->map($v ~> $v * 2)->filter($v ~> $v % 3);
> 7. $someDict->map(lambda($v) => $v * 2)->filter(lambda($v) => $v % 3);
>
Something else which really pops in these examples is the effect of
not needing to use parentheses when embedding a single-arg short
lambda.   3 and 6 in your list read cleaner to me (due to the lack of
parenthesis clutter).  Sadly ~> has the same hacky implementation
issues as ==>, but I think that shows a little bit of why the HackLang
team decided the messy lexer was worth the clearer syntax.

-Sara

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

Reply via email to