lazyeval (version 0.2.1)

expr_label: Find the expression associated with an argument

Description

expr_find() finds the full expression; expr_text() turns the expression into a single string; expr_label() formats it nicely for use in messages. expr_env() finds the environment associated with the expression.

Usage

expr_label(x)

expr_text(x, width = 60L, nlines = Inf)

expr_find(x)

expr_env(x, default_env)

Arguments

x

A promise (function argument)

width

Width of each line

nlines

Maximum number of lines to extract.

default_env

If supplied, expr_env will return this if the promise has already been forced. Otherwise it will throw an error.

Details

These functions never force promises, and will work even if a promise has previously been forced.

Examples

Run this code
# NOT RUN {
# Unlike substitute(), expr_find() finds the original expression
f <- function(x) g(x)
g <- function(y) h(y)
h <- function(z) list(substitute(z), expr_find(z))

f(1 + 2 + 3)

expr_label(10)
# Names a quoted with ``
expr_label(x)
# Strings are encoded
expr_label("a\nb")
# Expressions are captured
expr_label(a + b + c)
# Long expressions are collapsed
expr_label(foo({
  1 + 2
  print(x)
}))
# }

Run the code above in your browser using DataCamp Workspace