On Sat, 5 Dec 2020, Duncan Murdoch wrote:
On 04/12/2020 2:26 p.m., luke-tier...@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.
Best,
luke
Duncan Murdoch
The case where the LHS is to be passed as something other than the
first argument is unusual. For me, having that case stand out by using
a function expression makes it much easier to see and so makes the
code easier to understand. As a wearer of progressive bifocals
and someone whose screen is not always free of small dust particles,
having to spot the non-standard pipe stages by seeing a placeholder,
especially a . placeholder, is be a bug, not a feature.
Best,
luke
Syntactic sugars work the the best if 1) they require less keystrokes
and/or
2) are easier to read compared to the "normal" syntax, and 3) can not lead
to
unexpected bugs (which is a major problem with the magrittr pipe). Using
'_'
fulfills all of these criteria since '_' can not clash with any variable
in
the environment.
Denes
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel
--
Luke Tierney
Ralph E. Wareham Professor of Mathematical Sciences
University of Iowa Phone: 319-335-3386
Department of Statistics and Fax: 319-335-3017
Actuarial Science
241 Schaeffer Hall email: luke-tier...@uiowa.edu
Iowa City, IA 52242 WWW: http://www.stat.uiowa.edu
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel