[R] odd feature

Martin Maechler maechler at stat.math.ethz.ch
Mon May 22 16:42:44 CEST 2006


>>>>> "TL" == Thomas Lumley <tlumley at u.washington.edu>
>>>>>     on Mon, 22 May 2006 07:09:09 -0700 (PDT) writes:

    TL> On Mon, 22 May 2006, Gabor Grothendieck wrote:
    >> Due to lazy evaluation, I don't think a and b are fully evaluated:
    >> 
    >>> ifelse(1, a <- 1, b <- 2)
    >> [1] 1
    >>> a
    >> [1] 1
    >>> b
    >> Error: object "b" not found

    TL> yes. If you look at the code for ifelse() it evaluates
    TL> the second argument if any test values are TRUE and the
    TL> third argument if any test values are FALSE, so in the
    TL> scalar case it does not evaluate both arguments.

yes.  
And (Gabor), if you recall what I said earlier,  it's pretty clear
that I would not even *consider* using ifelse() in the scalar
case.  So my original statement was about the case ifelse() is
designed for: The non-trivial vector case, and there my
statement of "fully evaluated"  does apply.

Martin



More information about the R-help mailing list