On 10/25/06, Duncan Murdoch <[EMAIL PROTECTED]> wrote: > On 10/25/2006 8:14 PM, Gabor Grothendieck wrote: > > Suppose we have a function such as the following > > > > F <- function(f, x) f(x)+1 > > > > which runs function f and then transforms it. I would like the > > corresponding function which works the same except that > > unlike F returns an invisible result if and only if f does. > > > > Is there some way of determining whether f returns > > an invisible result or not? > > > > Thus we want this: > > > > f <- function(x) x > > g <- function(x) invisible(x) > > > >> F(f, 1) > > 2 > > > >> F(g, 1) > > I don't think there's a way to do that. Internally there's a global > flag called R_Visible; if it is set to zero, the value won't print. But > it gets reset to 1 very easily (e.g. by adding 1 to the result of an > invisible function), and it's not available in the API for you to write > C code to look at it. > > I think you'll just have to do require the user of your F to tell you > that they want the result to be invisible. > > Duncan Murdoch >
Perhaps R_Visible be made available at the R level in the future. It would be helpful in situations where you are transforming a function but want to keep aspects of it such as whether the return result is invisible. ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel