op-definition {rlang} | R Documentation |
The definition operator is typically used in DSL packages like
ggvis
and data.table
. It is also used in the tidyverse as a way
of unquoting names (see quasiquotation).
is_definition()
returns TRUE
for calls to :=
.
is_formulaish()
returns TRUE
for both formulas and
colon-equals operators.
is_definition(x) new_definition(lhs, rhs, env = caller_env()) is_formulaish(x, scoped = NULL, lhs = NULL)
x |
An object to test. |
lhs, rhs |
Expressions for the LHS and RHS of the definition. |
env |
The evaluation environment bundled with the definition. |
The recommended way to use it is to capture arguments as
expressions or quosures. You can then give a special function
definition for the :=
symbol in an overscope. Note that if you
capture dots with exprs()
or quos()
, you need to disable
interpretation of :=
by setting .unquote_names
to FALSE
.
From rlang and data.table perspectives, this operator is not meant to be evaluated directly at top-level which is why the exported definitions issue an error.
These functions are experimental.
# A predicate is provided to distinguish formulas from the # colon-equals operator: is_definition(quote(a := b)) is_definition(a ~ b) # is_formulaish() tests for both definitions and formulas: is_formulaish(a ~ b) is_formulaish(quote(a := b))