| 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