# op-definition

0th

Percentile

##### Definition operator

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.

Keywords
internal
##### Usage
is_definition(x)new_definition(lhs, rhs, env = caller_env())is_formulaish(x, scoped = NULL, lhs = NULL)
##### Arguments
x

An object to test.

lhs, rhs

Expressions for the LHS and RHS of the definition.

env

The evaluation environment bundled with the definition.

##### Details

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.

##### Life cycle

These functions are experimental.

##### Aliases
• op-definition
• is_definition
• new_definition
• is_formulaish
##### Examples
# NOT RUN {
# 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))
# }

Documentation reproduced from package rlang, version 0.2.2, License: GPL-3

### Community examples

Looks like there are no examples yet.