[Rd] Finding the environment of a promise

Simon Urbanek simon.urbanek at r-project.org
Wed Sep 9 17:09:17 CEST 2009


On Sep 9, 2009, at 9:40 , Henrique Dallazuanna wrote:

> If I understand your question, you can get the environment with  
> sys.frame:
>
> f <- function(code){
>    print(sys.frame())

^-- this will always return R_GlobalEnv (see ?sys.frame - which = 0 by  
default) regardless of the function and promise.

Also the question was about the environment of the promise, not the  
function. Technically a promise can be evaluated anywhere since it  
ignores the evaluation environment and will use its creation  
environment which is what Hadley was trying to get at (and as Duncan  
was saying it's not something that is or should be available at R  
level as it's an internal implementation detail).

Cheers,
Simon


>    force(code)
> }
>
> f({
> a <- 1
> b <- 2
> })
>
> On Wed, Sep 9, 2009 at 10:30 AM, Hadley Wickham <hadley at rice.edu>  
> wrote:
>
>> Hi all,
>>
>> Is it possible to determine the environment in which a promise will  
>> be
>> evaluated?  e.g.
>>
>> f <- function(code) { force(code) }
>> f({
>> a <- 1
>> b <- 2
>> })
>>
>> Is there any way to tell from within f that a and b will be created  
>> in
>> the global environment?
>>
>> Thanks,
>>
>> Hadley
>>
>> --
>> http://had.co.nz/
>>
>> ______________________________________________
>> R-devel at r-project.org mailing list
>> https://stat.ethz.ch/mailman/listinfo/r-devel
>>
>
>
>
> -- 
> Henrique Dallazuanna
> Curitiba-Paraná-Brasil
> 25° 25' 40" S 49° 16' 22" O
>
> 	[[alternative HTML version deleted]]
>
> ______________________________________________
> R-devel at r-project.org mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel



More information about the R-devel mailing list