# pryr v0.1.4

0

0th

Percentile

## Tools for Computing on the Language

Useful tools to pry back the covers of R and understand the language at a deeper level.

# pryr (rhymes with pry bar)

pryr provides tools to pry back the surface of R and dig into the details. It has been developed in conjunction with "Advanced R programming" to make it easier to understand what's going on in R.

Install it from CRAN with install.packages("pryr").

## Tools

pryr includes tools to:

• Make it easier to understand the internal implementation of:

• promises: uneval(), is_promise(), promise_info()
• scoping and environments: where(), rls(), parenv()
• closures: unenclose()
• calls and expressions: call_tree()
• primitive types: typenames()
• copy-on-modify: address(), track_copy()
• Inspect and understand R's OO systems:

• Determine which OO system an object belongs to: otype()
• Determine which OO system a function belongs to: ftype()
• Make it easier to compute on the language:

• Alternative ways to create functions: make_function(), f()
• A version of substitute that uses regular evaluation, substitute_q(), and one that will substitute objects in the global environment, subs()
• Tools to modify language objects: modify_lang()
• dots() and named_dots() to get unevaluated ...
• Partial function evaluation: partial()
• Find all functions matching some criteria: find_funs()
• To use existing R tools more easily:

• %<d-% and %<a-% for creating delayed or active bindings
• %<c-% for creating constants (locked bindings)
• rebind as a more user friendly version of <<-

## Functions in pryr

 Name Description mem_used How much memory is currently used by R? parent_promise Find the parent (first) promise. rls Recursive ls. rebind Rebind an existing name. sexp_type Inspect internal attributes of R objects. track_copy Track if an object is copied otype Determine object type. method_from_call Given a function class, find correspoding S4 method partial Partial apply a function, filling in some arguments. unenclose Unenclose a closure. print.envlist Print an envlist modify_call Modify the arguments of a call. make_function Make a function from its components. mem_change Determine change in memory from running code modify_lang Recursively modify a language object substitute_q A version of substitute that evaluates its first argument. subs A version of substitute that works in the global environment. object_size Compute the size of an object. names_c Extract function table from names.c from R subversion repository. uneval Capture the call associated with a promise. parenv Get parent/ancestor environment parenvs Given an environment or object, return an envlist of its parent environments. where Find where a name is defined. show_c_source Find C source code for internal R functions standardise_call Standardise a function call %