I actually like this syntax, but what would it look like for
multi-statement closures?

A nested set of curly braces around the body would look pretty messy.

    $things->forEach({$v => { foo($v); bar($v); }});


On Mon, Jun 19, 2017 at 4:43 PM, Levi Morrison <le...@php.net> wrote:

> On Sun, Jun 18, 2017 at 1:44 PM, Ilija Tovilo <ilija.tov...@me.com> wrote:
> > Sorry, I wasn’t aware of that.
> >
> > What do you think of the Ruby/Rust style syntax that Levi proposed a
> while back?
> >
> > $someDict
> >     ->map(|$v| $v * 2)
> >     ->filter(|$v| $v % 3);
> >
> > This one has a few advantages:
> >
> > 1. It has syntax (a lot of) developers are already familiar with
> > 2. It has no ambiguities and is fully backward compatible
> > 3. It’s the shortest of all options available (two `|` characters and
> one space)
>
> We determined that the arrow between the parameters and the expression
> would still be required. Given this limitation I think this syntax is
> seviceable:
>
>     $someDict
>         ->map({$v => $v * 2})
>         ->filter({$v => $v % 3});
>
> Sometime this week I intend to start another thread that narrows us
> down to two choices.
>

Reply via email to