rlang::fn_fmls<-
позволяет изменять сигнатуры функций:
f <- function(a, b, c) print(paste(a, c))
f_args <- rlang::fn_fmls(f)
f_args["b"] <- NULL
rlang::fn_fmls(f) <- f_args
f(1, 2)
#> [1] "1 2"
Создано в 2020-04-07 пакетом Представить (v0.3.0)
Очевидно, мы удалили b
из подписи функции. Однако, если мы напечатаем саму функцию:
f
#> function(a, b, c) print(paste(a, c))
b
все равно появится в ее подписи. Использование args(f)
(которое печатает только подпись) действительно работает, и b
опущено.
Что нужно сделать, чтобы функция (с телом) печаталась правильно, с опущенным b
?