From murdoch@dunc@n @end|ng |rom gm@||@com  Sat Dec  5 16:57:15 2020
From: murdoch@dunc@n @end|ng |rom gm@||@com (Duncan Murdoch)
Date: Sat, 5 Dec 2020 10:57:15 -0500
Subject: [Rd] [External] Re:  New pipe operator
In-Reply-To: <alpine.DEB.2.21.2012042001540.3003@luke-Latitude-7480>
References: <e55c2093-0bb5-5f9b-5521-0ca8bdf35953@gmail.com>
 <CALyqOb8c1hHOSaMV+fqXTwpeOsP--KJ_t-oeqMYYafVXeNpqZg@mail.gmail.com>
 <7586e034-e287-0970-6480-f82d747b5445@gmail.com>
 <b98cf6d4-b856-2963-1882-9341384d141d@kogentum.hu>
 <alpine.DEB.2.21.2012041310130.3003@luke-Latitude-7480>
 <d03c6867-4aa8-fa82-fe98-e706994dad3a@gmail.com>
 <alpine.DEB.2.21.2012042001540.3003@luke-Latitude-7480>
Message-ID: <ef0f31c7-f054-3c4c-5a56-e4195e0c1123@gmail.com>

On 04/12/2020 9:11 p.m., luke-tierney at uiowa.edu wrote:
> On Sat, 5 Dec 2020, Duncan Murdoch wrote:
> 
>> On 04/12/2020 2:26 p.m., luke-tierney at uiowa.edu wrote:
>>> On Fri, 4 Dec 2020, D?nes T?th wrote:
>>>
>>>>
>>>> On 12/4/20 3:05 PM, Duncan Murdoch wrote:
>>>>> ...
>>>>>
>>>>> It's tempting to suggest it should allow something like
>>>>>
>>>>>    ? mtcars |> subset(cyl == 4) |> lm(mpg ~ disp, data = .)
>>>>>
>>>>> which would be expanded to something equivalent to the other versions:
>>>>> but
>>>>> that makes it quite a bit more complicated.? (Maybe _ or \. should be
>>>>> used
>>>>> instead of ., since those are not legal variable names.)
>>>>
>>>> I support the idea of using an underscore (_) as the placeholder symbol.
>>>
>>> I strongly oppose adding a placeholder. Allowing for an optional
>>> placeholder significantly complicates both implementing and explaining
>>> the semantics. For a simple syntax transformation to be viable it
>>> would also require some restrictions, such as only allowing a
>>> placeholder as a top level argument and only once. Checking that these
>>> restrictions are met, and accurately signaling when they are not with
>>> reasonable error messages, is essentially an unsolvable problem given
>>> R's semantics.
>>
>> I don't think you read my suggestion, but that's okay:  you're maintaining
>> it, not me.
> 
> I thought I did but maybe I missed something. You are right that
> supporting a placeholder makes things a lot more complicated. For
> being able to easily recognize the non-standard cases _ is better than
> . but for me at least not by much.
> 
> We did try a number of variations; the code is in the R-syntax branch.
> At the root of that branch are two .md files with some notes as of
> around useR20. Once things settle down I may update those and look
> into turning them into a blog post.

Thanks for pointing out those documents.

Duncan Murdoch



[Rd] [External] Re: New pipe operator
Duncan Murdoch