Re: Pipe Operator v2
| From: | Levi Morrison | Date: | Thu, 19 Jan 2017 21:53:39 +0000 |
| Subject: | Re: Pipe Operator v2 | ||
| References: | 1 2 3 | Groups: | php.internals |
| Request: | Send a blank email to internals+get-97882@lists.php.net to get a copy of this message | ||
On Thu, Jan 19, 2017 at 11:12 AM, François Laupretre <flaupretre@free.fr> wrote:
> Le 19/01/2017 à 13:54, Levi Morrison a écrit :
>>
>> The
|> symbol would be the piping operator with these
>> semantics:
>> 1. Evaluate the left-hand side.
>> 2. Evaluate the right-hand side. Assert that the result is callable..
>> 3. Pass the result from 1. as the single argument to 2.
>
>
> May I suggest extending your 3rd rule to : when the right hand side has the
> form of a function call, insert the result from 1. as first argument of 2..
> This way, right hand side may specify additional arguments
If we only had |> this may be good but since we are also proposing
$$ then this renders your suggestion unnecessary:
$string |> trim($$)
Would work just fine with no performance overhead.
Additionally, you could write:
$input |> array_map($fn, $$)
Or:
$input |> array_filter($$, $fn)
Basically, $$ gives the flexibility of passing additional arguments
and keeps |> simple. No need for additional rules for |>.