On 23/02/2008 5:58 AM, Christophe Genolini wrote: > Duncan Murdoch a écrit : >> On 23/02/2008 5:15 AM, Christophe Genolini wrote: >>> Hi the list >>> >>> Is it possible to 'hide' a function from the user ? I cut a big >>> fonction in sub >>> function and I would like to hide the sub function, just like if I >>> declare them >>> in the big function : >>> >>> -------------- >>> a <- function(x){ >>> b <- function(y){y^2} >>> d <- function(y){y^3} >>> b(x)+d(x)+2 >>> } >>> a(2) >>> # [1] 14 >>> b(2) >>> # Error : >>> ---------------- >>> >>> I would like the same, but with external declaration (for readability) : >>> >>> ---------------- >>> b <- function(y){y^2} >>> d <- function(y){y^3} >>> a <- function(x){ >>> b(x)+d(x)+2 >>> } >>> a(2) >>> # [1] 14 >>> b(2) >>> # Error >>> ---------------- >>> >>> Is it possible ? >> Yes, as long as you're using a package with a NAMESPACE, just don't >> export b and d. There are other ways too, but they don't improve >> readability. >> >> Duncan Murdoch > If I understand, it is possible only in a package, not in a programme > (unless the "other ways"), is that it ?
Yes, that's right. Here's one of the other ways: a <- local( { b <- function(y){y^2} d <- function(y){y^3} function(x){ b(x)+d(x)+2 } }) I don't find that more readable than if b and d had been defined locally within a. Duncan Murdoch ______________________________________________ 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.