Recursively modify a language object
Recursively modify a language object
modify_lang(x, f, ...)
x |
object to modify: should be a call, expression, function or list of the above. |
f |
function to apply to leaves |
... |
other arguments passed to |
a_to_b <- function(x) { if (is.name(x) && identical(x, quote(a))) return(quote(b)) x } examples <- list( quote(a <- 5), alist(a = 1, c = a), function(a = 1) a * 10, expression(a <- 1, a, f(a), f(a = a)) ) modify_lang(examples, a_to_b) # Modifies all objects called a, but doesn't modify arguments named a
Please choose more modern alternatives, such as Google Chrome or Mozilla Firefox.