[Rd] Using and 'eval' and environments with active bindings

luke at stat.uiowa.edu luke at stat.uiowa.edu
Mon Mar 16 16:37:30 CET 2009


Thanks for the report.  I meant to have R_isMissing always return
FALSE for active binding but had it returning TRUE intead.  Fixed now
in R-devel.

luke

On Sun, 15 Mar 2009, Roger D. Peng wrote:

> The following code produces an error in current R-devel
>
> f <- function(value) {
>        if(!missing(value))
>                100
>        else
>                2
> }
> e <- new.env()
> makeActiveBinding("x", f, e)
> eval(substitute(list(x)), e)
>
> The error, after calling 'eval' is
>
> Error in eval(expr, envir, enclos) :
>  element 1 is empty;
>   the part of the args list of 'list' being evaluated was:
>   (x)
>
>
> It has something to do with the change in R_isMissing in revision
> r48118 but I'm not quite knowledgeable enough to understand what the
> problem is. In R 2.8.1 the result was simply
>
>
>> eval(substitute(list(x)), e)
> [[1]]
> [1] 2
>
> I can't say I know what the output should be but I'd like some
> clarification on whether this is a bug.
>
> Thanks,
> -roger
>

-- 
Luke Tierney
Chair, Statistics and Actuarial Science
Ralph E. Wareham Professor of Mathematical Sciences
University of Iowa                  Phone:             319-335-3386
Department of Statistics and        Fax:               319-335-3017
    Actuarial Science
241 Schaeffer Hall                  email:      luke at stat.uiowa.edu
Iowa City, IA 52242                 WWW:  http://www.stat.uiowa.edu



More information about the R-devel mailing list