Peter Dalgaard wrote:
> Wacek Kusnierczyk wrote:
>>
>>>
>>> " The operators '<<-' and '->>' cause a search to made through the
>>> environment for an existing definition of the variable being
>>> assigned. If such a variable is found (and its binding is not
>>> locked) then its value is redefined, otherwise assignment takes
>>> place in the global environment. Note that their semantics differ
>>> from that in the S language, but are useful in conjunction with
>>> the scoping rules of R. See 'The R Language Definition' manual
>>> for further details and examples."
>>>
>>>
>>
>> the description is further imprecise as to what happens if such a
>> variable is found but is locked:
>>
>> foo = function() {
>> x = 0
>> lockBinding("x", environment())
>> (function() x <<- 1)()
>> unlockBinding("x", environment())
>> }
>>
>> foo()
>> # error
>>
>> if analysed logically (IF (found AND not locked THEN assign) ELSE assign
>> globally), the description is wrong.
>
> Yes.
>
> If such a variable is found then its value is redefined (unless its
> binding is locked), otherwise assignment take place in the global
> environment.
>
it might help the help to be have the help say that if the variable is
found but locked then an error is raised.
vQ
______________________________________________
[email protected] mailing list
https://stat.ethz.ch/mailman/listinfo/r-help
PLEASE do read the posting guide http://www.R-project.org/posting-guide.html
and provide commented, minimal, self-contained, reproducible code.