[R] Lexical scoping question
Jim Rogers
jrogers at cantatapharm.com
Fri Feb 28 17:47:26 CET 2003
Hello,
Could someone please tell me what I am thinking about incorrectly:
f <- function(y) {
g <- function(x) x + y
g
}
In the following, I get what I expect based on my understanding of
lexical scoping:
(f(1))(3) # 4
(f(2))(3) # 5
But now,
fs <- lapply(c(1, 2), f)
fs[[1]](3) # 5 (Why not 4 ?)
fs[[2]](3) # 5
Checking the environments of these functions, I see that "y" is indeed
bound to the value 2 in both cases:
es <- lapply(fs, environment)
ys <- lapply(es, function(env) get("y", env)) # list(2, 2)
?
Thanks for help,
Jim Rogers
James A. Rogers, Ph.D. <rogers at cantatapharm.com>
Statistical Scientist
Cantata Pharmaceuticals
3-G Gill St
Woburn, MA 01801
617.225.9009
Fax 617.225.9010
More information about the R-help
mailing list