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.