[R] If statement generates two outputs

Wacek Kusnierczyk Waclaw.Marcin.Kusnierczyk at idi.ntnu.no
Tue Mar 24 10:39:59 CET 2009


Thomas Lumley wrote:
> On Tue, 24 Mar 2009, Wacek Kusnierczyk wrote:
>
>> thanks.  so it seems to be intentionally parsable, though i wouldn't say
>> that this gives a meaning to ':=' -- the operator has a syntactic
>> category, but no semantics.  the syntactic category does not imply any
>> semantics, as in
>>
>>    '<-' = function(a, b) NULL
>>    1 <- a
>>    # NULL
>>
>> where '<-' is still parsed the original way (as a LEFT_ASSIGN, gram.y
>> again), but has now a completely different semantics.
>>
>> it looks like a bug to me:  ':=' is parsed on par with '<-' as a
>> LEFT_ASSIGN, but apparently is not backed by any function.  it's a
>> zombie.  (unless rvalues is used, that is.)
>
> yes, it's a zombie. It used to assign to the R system environment
> rather than the global workspace (roughly what is the base namespace
> now).
>

thanks for the explanation.  for the sake of rvalues, please do not fix
this bug.  i find it useful to avoid messing with = and <-.

vQ




More information about the R-help mailing list