On 07/12/2020 12:03 p.m., Gregory Warnes wrote:
My vote is for the consistency of function calls always having parentheses,
including in pipes. Making them optional only saves two keystrokes, but
will add yet another inconsistency to confuse or trip folks up.
As for the new anonymous function syntax, I would prefer something more
human friendly, perhaps provide “fun” as a shortcut for “function”,
enabling:
DF <- "myfile.csv" %>%
readLines() |>
fun(x) gsub(r'{(c\(.*?\)|integer\(0\))}', r'{"\1"}', x) |>
fun(x) read.csv(text = x)|>
mutate(
across(2:3,
fun(col) lapply(col,
fun(x) eval(parse(text = x))
)
)
)
which seems much easier to read and understand, at the cost of only a few
extra characters.
But you didn't "always" include parentheses, you skipped them on the
calls to the anonymous functions. I think that's the one place I'd make
the exception, so maybe we agree: parens are almost always needed, with
the sole exception being anonymous functions.
As to using "fun", I think that's a bad idea. I haven't checked, but I
wouldn't be too surprised if "fun" has been used thousands of times in
CRAN packages as the name of a function. So
x |> fun(y)
would mean "fun(x, y)", whereas
x |> fun(y) y+1
would mean (function(y) y+1)(x).
Duncan Murdoch
______________________________________________
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel