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
______________________________________________
[email protected] 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.