From: Berton Gunter <gunter.berton_at_gene.com>

Date: Fri 03 Feb 2006 - 09:56:44 EST

>> x <- 1

*>> f <- function(z) { y <- x; y + 1 } # Mistake: I should have written y <-
*

z

>> f(10)

>> On 2/2/2006 10:56 AM, Fernando Saldanha wrote:

*>>> I declared the environment of the function myfun to be NULL as follows:
*

*>>>
*

*>>> environment(myfun) <- NULL
*

*>> Since version 2.1.0, it's been recommended that you use
*

*>>
*

*>> environment(myfun) <- baseenv()
*

*>>
*

*>> and since 2.2.0, you'll get a warning when using NULL (and you'll get an
*

*>> error in 2.3.0). But why would you want to do that? What are you
*

*>> trying to achieve?
*

*>>
*

*>> Duncan Murdoch
*

*>>
*

*>>
*

*>>> Later on I called that myfun and got an error message because the
*

*>>> function index() in the zoo package was called inside myfun and was
*

*>>> not visible:
*

*>>>
*

*>>> Error in myfun(args) : couldn't find function "index"
*

*>>>
*

*>>> I tried to use zoo::index() instead of index(), but that did not work.
*

*>>> In fact, zoo::index does not work even in the command line:
*

*>>>
*

*>>>> z<-ts(1:5)
*

*>>>> z
*

*>>> Time Series:
*

*>>> Start = 1
*

*>>> End = 5
*

*>>> Frequency = 1
*

*>>> [1] 1 2 3 4 5
*

*>>>> index(z)
*

*>>> [1] 1 2 3 4 5
*

*>>>> zoo::index(z)
*

*>>> Error in loadNamespace(name) : package 'zoo' does not have a name space
*

*>>>
*

*>>> How can I qualify index() so that it is visible inside the body of
*

myfun?

*>>>
*

>>> Thanks for any suggestions,

*>>>
*

*>>> FS
*

*>>>
*

*>>> ______________________________________________
*

*>>> R-help@stat.math.ethz.ch mailing list
*

*>>> https://stat.ethz.ch/mailman/listinfo/r-help
*

*>>> PLEASE do read the posting guide!
*

http://www.R-project.org/posting-guide.html

*>>
*

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide!

http://www.R-project.org/posting-guide.html

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Fri Feb 03 10:08:24 2006

Date: Fri 03 Feb 2006 - 09:56:44 EST

Just echoing and slightly amplifying Gabor's comment...

The semantics of R are really based on functional programming (LISP-like) rather than OOP (JAVA-like)? R's behavior is "proper" from that point of view; what is "improper" is Fernando's expectation that it should behave some other way. Of course, one can simulate anything with a Turing machine, but I consider Fernando's criticisms somewhat "unfair" because he is expecting R to behave like something he is familiar with rather than as it was designed to. For this reason, what bothers him seems wholly desirable to me -- I want there to be well-defined scoping convention (lexical scoping) for R to find free variables.

Cheers,

Bert

-----Original Message-----

From: r-help-bounces@stat.math.ethz.ch

[mailto:r-help-bounces@stat.math.ethz.ch] On Behalf Of Duncan Murdoch
Sent: Thursday, February 02, 2006 2:16 PM
To: fsaldanha@alum.mit.edu

Cc: r-help@stat.math.ethz.ch

Subject: Re: [R] How to get the namespace of a function?

On 2/2/2006 5:05 PM, Fernando Saldanha wrote:

> I am trying to imitate "encapsulation" from other languages like Java > or C++. Coming from that background, it bothers me that I can commit > errors like the following: >

>> x <- 1

z

>> f(10)

> [1] 2 > > In a language like Java the interpreter would have noticed that x was > an undeclared variable and an error message would be issued. R, on the > other hand, allows the code to run, as x exists in the global > environment. I was trying to avoid such situations by setting the > environment of f to be NULL. If there is a better way to catch this > type of errors I would be interested in knowing about it.

> > FS > > On 2/2/06, Duncan Murdoch <murdoch@stats.uwo.ca> wrote:

>> On 2/2/2006 10:56 AM, Fernando Saldanha wrote:

myfun?

>>> Thanks for any suggestions,

http://www.R-project.org/posting-guide.html

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide!

http://www.R-project.org/posting-guide.html

R-help@stat.math.ethz.ch mailing list

https://stat.ethz.ch/mailman/listinfo/r-help PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html Received on Fri Feb 03 10:08:24 2006

*
This archive was generated by hypermail 2.1.8
: Fri 03 Mar 2006 - 03:42:19 EST
*