[R] Hiding a function

Gabor Grothendieck ggrothendieck at gmail.com
Sat Feb 23 13:44:22 CET 2008


Just to clarify, what Duncan was referring to as the
alternative was nesting the definition of one function
in another, e.g. look at FUNx in by.data.frame --
FUNx is available to by.data.frame but is not
visible outside of by.data.frame .

On Sat, Feb 23, 2008 at 6:09 AM, Duncan Murdoch <murdoch at stats.uwo.ca> wrote:
>
> 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 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.
>



More information about the R-help mailing list