#' Recursive Map #' #' @examples #' RMap(paste, #' list("a", list("b", "c", list("d", "e")), "f"), #' list("A", list("B", "C", list("D", "E")), "F"), #' list(10, list(20), 30), #' 1:3, #' "X" #' ) #' #' @export RMap <- function(f, ...) { Map(function(...) { if (any(unlist(Map(is.recursive, list(...))))) { RMap(f, ...) } else { match.fun(f)(...) } }, ...) }