Chapter 3 Metaprogramming

Learning objectives:

  • Explain why it’s useful to know about defused expressions (maybe?).
  • Describe the relationship between defusing and lazy evaluation.
  • Compare and contrast the three types of defused expressions.
  • Differentiate between expr() (for defusing your own expressions) and enquo() & enquos() (for defusing expressions supplied by the user of your function).
  • Compare {rlang} defusing to base-R equivalents.