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.
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
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel