delay-deprecated {base}R Documentation

Delay Evaluation

Description

delay creates a promise to evaluate the given expression in the specified environment if its value is requested. This provides direct access to lazy evaluation mechanism used by R for the evaluation of (interpreted) functions.

Usage

delay(x, env = .GlobalEnv)

Arguments

x an expression.
env an evaluation environment

Details

If promises are kept inside an environment or list, they can be accessed in several ways without evaluation, see the examples below.

When a promise is eventually forced, it is evaluated within the environment specified by env (who contents may have changed in the meantime).

Value

A promise to evaluate the expression. The value which is returned by delay can be assigned without forcing its evaluation, but any further accesses will cause evaluation.

Note

delay was deprecated in R 2.1.0 and will be removed in 2.2.0.

Examples

x <- delay({
    for(i in 1:7)
        cat("yippee!\n")
    10
})

x^2 #- yippee
x^2 #- simple number

e <- (function(x, y = 1, z) environment())(1+2, "y", {cat(" HO! "); pi+2})
(le <- as.list(e)) # a list with three promise components
utils::str(le)     # even shows what's promised

le$z # prints; does not eval
ez <- le$z
ez-2 # "HO!", pi
ez # 5.14
le$z # still promise

[Package base version 2.1.0 Index]