You are missing 'force'.

See 'The R Inferno' page 90.

In this case you can define:

f <- function(y) { force(y); function() y}


On 10/05/2010 11:06, sayan dasgupta wrote:
Hey guys,

I have a doubt here , It is something simple I guess, what am I missing out
here ??


f<- function(y) function() y
tmp<- vector("list", 5)
for (i in 1:5) tmp[[i]]<- f(i)
tmp[[1]]() # returns 5;

z<- f(6)
tmp[[1]]() # still returns 5; it should return 6 "ideally" right ???

Even if  I dont evaluate the function tmp[[1]] before i.e I do
rm(list=ls())
f<- function(y) function() y
tmp<- vector("list", 5)
for (i in 1:5) tmp[[i]]<- f(i)
  z<- f(6)
tmp[[1]]() # it still returns 5; it should return 6 "ideally" right ???

        [[alternative HTML version deleted]]

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.


--
Patrick Burns
pbu...@pburns.seanet.com
http://www.burns-stat.com
(home of 'Some hints for the R beginner'
and 'The R Inferno')

______________________________________________
R-help@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.

Reply via email to