The definition operator is typically used in DSL packages like
data.table. It is exported in rlang as a alias to
~. This makes it a quoting operator that can be shared between
packages for computing on the language. Since it effectively
creates formulas, it is immediately compatible with rlang's
formulas and interpolation features.
":="() is_definition(x) new_definition(lhs, rhs, env = caller_env())
An object to test.
Expressions for the LHS and RHS of the definition.
The evaluation environment bundled with the definition.
# This is useful to provide an alternative way of specifying # arguments in DSLs: fn <- function(...) ..1 f <- fn(arg := foo(bar) + baz) is_formula(f)#>  FALSEf_lhs(f)#> argf_rhs(f)#> foo(bar) + baz# A predicate is provided to distinguish formulas from the # colon-equals operator: is_definition(a := b)#>  TRUEis_definition(a ~ b)#>  FALSE