[R] Hiding a function
Duncan Murdoch
murdoch at stats.uwo.ca
Sat Feb 23 12:09:01 CET 2008
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
More information about the R-help
mailing list