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
library(rlang) # 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.0, License: GPL-3

Community examples

Looks like there are no examples yet.