Or maybe it'll look okay if you format the code? $things->forEach({$v => { foo($v); bar($v); }});
Still looks kinda crazy with the closing "}})" though... On Mon, Jun 19, 2017 at 9:43 PM, Rasmus Schultz <ras...@mindplay.dk> wrote: > 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. >> > >