fn_fmls()
returns a named list of formal arguments.
fn_fmls_names()
returns the names of the arguments.
fn_fmls_syms()
returns formals as a named list of symbols. This
is especially useful for forwarding arguments in constructed calls.
Arguments
- fn
A function. It is looked up in the calling frame if not supplied.
- value
New formals or formals names for
fn
.
Details
Unlike formals()
, these helpers throw an error with primitive
functions instead of returning NULL
.
Examples
# Extract from current call:
fn <- function(a = 1, b = 2) fn_fmls()
fn()
#> $a
#> [1] 1
#>
#> $b
#> [1] 2
#>
# fn_fmls_syms() makes it easy to forward arguments:
call2("apply", !!! fn_fmls_syms(lapply))
#> apply(X = X, FUN = FUN, ...)
# You can also change the formals:
fn_fmls(fn) <- list(A = 10, B = 20)
fn()
#> $A
#> [1] 10
#>
#> $B
#> [1] 20
#>
fn_fmls_names(fn) <- c("foo", "bar")
fn()
#> $foo
#> [1] 10
#>
#> $bar
#> [1] 20
#>