What would you propose for the unquote-splice operator? Hadley
On Friday, March 17, 2017, Jonathan Carroll <j...@jcarroll.com.au> wrote: > (please be gentle, it's my first time) > > I am interested in discussions (possibly reiterating past threads -- > searching didn't turn up much) on the possibility of supporting standard > evaluation unquoting at the language level. This has been brought up in a > recent similar thread here [1] and on Twitter [2] where I proposed the > following desired (in-principle) syntax > > f <- function(col1, col2, new_col_name) { > mtcars %>% mutate(@new_col_name = @col1 + @col2) > } > > or closer to home > > x <- 1:10; y <- "x" > data.frame(z = @y) > > where @ would be defined as a unary prefix operator which substitutes the > quoted variable name in-place, to allow more flexibility of NSE functions > within a programming context. This mechanism exists within MySQL [3] (and > likely other languages) and could potentially be extremely useful. Several > alternatives have been incorporated into packages (most recently work > on tidyeval) none of which appear to fully match the simplicity of the > above, and some of which cut a forceful path through the syntax tree. > > The exact syntax isn't my concern at the moment (@ vs unquote() or other, > though the first requires user-supplied native prefix support within the > language, as per [1]) and neither is the exact way in which this would be > achieved (well above my pay grade). The practicality of @ being on the LHS > of `=` is also of a lesser concern (likely greater complexity) than the > RHS. > > I hear there exists (justified) reluctance to add new syntax to the > language, but I think this has sufficient merit (and a growing number of > workarounds) to warrant continued discussion. > > With kindest regards, > > - Jonathan. > > [1] https://stat.ethz.ch/pipermail/r-devel/2017-March/073894.html > [2] https://twitter.com/carroll_jono/status/842142292253196290 > [3] https://dev.mysql.com/doc/refman/5.7/en/user-variables.html > > [[alternative HTML version deleted]] > > ______________________________________________ > R-devel@r-project.org <javascript:;> mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel > -- http://hadley.nz [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel