Wacek Kusnierczyk wrote:
>
> it's a pity that <<- is not explained in ?`<<-` clearly enough:
>
> "  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. 

vQ

______________________________________________
R-help@r-project.org 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.

Reply via email to