18.21 Expression vectors

  • An expression vector is just a list of expressions.
    • The only difference is that calling eval() on an expression evaluates each individual expression.
    • Instead, it might be more advantageous to use a list of expressions.
  • Expression vectors are only produced by two base functions: expression() and parse():
exp1 <- parse(text = c("
x <- 4
x
"))
exp2 <- expression(x <- 4, x)
typeof(exp1)
#> [1] "expression"
typeof(exp2)
#> [1] "expression"
exp1
#> expression(x <- 4, x)
exp2
#> expression(x <- 4, x)
  • Like calls and pairlists, expression vectors behave like lists:
length(exp1)
#> [1] 2
exp1[[1]]
#> x <- 4