2017-06-09 15:44 GMT+02:00 Sara Golemon <poll...@php.net>:

> 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.


Another possible syntax (dunno whether this has already been suggested
on-list):

$function = { $x => 2 * $x };
$function = { ($x) => 2 * $x };
$function = | $x => 2 * $x |;
$function = | ($x) => 2 * $x |;

Nikita and Levi prefer it with parenthesis, I prefer it without, because I
think it's unnecessary clutter.

A reason to use | ... | instead of { ... } would be to allow future object
literals.

Regards, Niklas

Reply via email to