vec_is_list() tests if x is considered a list in the vctrs sense. It returns TRUE if:

• x is a bare list with no class.

• x is a list explicitly inheriting from "list".

list_all_vectors() takes a list and checks that all elements of x are vectors.

vec_check_list() and list_check_all_vectors() throw a type error if the input is not a list as defined by vec_is_list() and list_all_vectors() respectively.

## Usage

vec_is_list(x)

vec_check_list(x, ..., arg = caller_arg(x), call = caller_env())

list_all_vectors(x)

list_check_all_vectors(x, ..., arg = caller_arg(x), call = caller_env())

## Arguments

x

An object.

...

These dots are for future extensions and must be empty.

arg

An argument name as a string. This argument will be mentioned in error messages as the input that is at the origin of a problem.

call

The execution environment of a currently running function, e.g. caller_env(). The function will be mentioned in error messages as the source of the error. See the call argument of abort() for more information.

## Details

Notably, data frames and S3 record style classes like POSIXlt are not considered lists.

## Examples

vec_is_list(list())
#> [1] TRUE
vec_is_list(list_of(1))
#> [1] TRUE
vec_is_list(data.frame())
#> [1] FALSE

list_all_vectors(list(1, mtcars))
#> [1] TRUE
list_all_vectors(list(1, environment()))
#> [1] FALSE

# list_-prefixed functions assume a list:
try(list_all_vectors(environment()))
#> Error in list_all_vectors(environment()) :
#>   x must be a list, not an environment.