R: Extract arguments from a function

fn_fmls {rlang} | R Documentation

## Extract arguments from a function

### Description

`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.

### Usage

    fn_fmls(fn = caller_fn())

    fn_fmls_names(fn = caller_fn())

    fn_fmls_syms(fn = caller_fn())

    fn_fmls(fn) <- value

    fn_fmls_names(fn) <- value

### Arguments

`fn` | A function. It is lookep 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`.

### See Also

`call_args()` and `call_args_names()`

### Examples

    # Extract from current call:
    fn <- function(a = 1, b = 2) fn_fmls()
    fn()

    # fn_fmls_syms() makes it easy to forward arguments:
    call2("apply", !!! fn_fmls_syms(lapply))

    # You can also change the formals:
    fn_fmls(fn) <- list(A = 10, B = 20)
    fn()

    fn_fmls_names(fn) <- c("foo", "bar")
    fn()

[Package rlang version 0.4.3 Index]