In addition to what Charles wrote, you can also use 'local' if you don't want a function that creates another function.
> f <- local({info <- 10; function(x) x + info}) > f(3) [1] 13 best, Mark Op vr 11 dec. 2015 om 03:27 schreef Charles C. Berry <ccbe...@ucsd.edu>: > On Thu, 10 Dec 2015, Konrad Rudolph wrote: > > > I’ve got the following scenario: I need to store information about an > > R function, and retrieve it at a later point. In other programming > > languages I’d implement this using a dictionary with the functions as > > keys. In R, I’d usually use `attr(f, 'some-name')`. However, for my > > purposes I do not want to use `attr` because the information that I > > want to store is an implementation detail that should be hidden from > > the user of the function (and, just as importantly, it shouldn’t > > clutter the display when the function is printed on the console). > > > > `comment` would be almost perfect since it’s hidden from the output > > when printing a function — unfortunately, the information I’m storing > > is not a character string (it’s in fact an environment), so I cannot > > use `comment`. > > > > How can this be achieved? > > > > See > > https://cran.r-project.org/doc/manuals/r-release/R-intro.html#Scope > > For example, these commands: > > foo <- function() {info <- "abc";function(x) x+1} > func <- foo() > find("func") > func(1) > ls(envir=environment(func)) > get("info",environment(func)) > func > > Yield these printed results: > > : [1] ".GlobalEnv" > : [1] 2 > : [1] "info" > : [1] "abc" > : function (x) > : x + 1 > : <environment: 0x7fbd5c86bc60> > > The environment of the function gets printed, but 'info' and other > objects that might exist in that environment do not get printed unless > you explicitly call for them. > > HTH, > > Chuck > > p.s. 'environment(func)$info' also works. > ______________________________________________ > R-devel@r-project.org mailing list > https://stat.ethz.ch/mailman/listinfo/r-devel [[alternative HTML version deleted]] ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel