[R] How to use current value of variable in function definition?
Mark Wardle
mark at wardle.org
Thu Jul 2 22:02:17 CEST 2009
Hi.
I've stared at your code for a number of minutes and can't understand
what you're trying to achieve here. It looks as if you're fighting
scope - it may be worth refactoring your approach to simplify matters.
Otherwise, it sounds like a recipe for obfuscation! What are you
trying to do really?
b/w
Mark
2009/7/2 Allan Engelhardt <allane at cybaea.com>:
> Must be the heat or something but I can't get my brain into gear and figure
> out how to get something like
>
> if (1) { c <- 1; foo <- function () print(c); }
> c <- 2
> foo()
>
> to print 1, not 2. (The real life example is a little more complex, but you
> get the idea. I don't want the variable c in the function definition, I
> want its value at that time.)
>
> The only thing I have been able to come up with is something like
>
> if (1) foo <- (function () { c <- 1; return(function () print(c)) })()
> c <- 2
> foo()
> # [1] 1
>
> but that just hurts. Please make the pain go away.
>
> Can someone wake up my brain?
>
> Allan.
>
> ______________________________________________
> R-help at 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.
>
>
--
Dr. Mark Wardle
Specialist registrar, Neurology
Cardiff, UK
More information about the R-help
mailing list