Superassignment (<<-) and indexing
Wow! That's great. Thanks. spencer
Thomas Lumley wrote:
On Fri, 2 Sep 2005, Spencer Graves wrote:
Permit a mild protest on the word "appropriate" in this context. The global assignment operator "<<-" provides, for my tastes, excessive opportunities for problems. If I define "x" someplace else and then call your function, it may change my "x" in ways that generate considerable wailing and gnashing of teeth.
No, no, no.
The sensible and appropriate uses of <<- involve modifying a variable
that already exists in the lexical parent environment. In these cases
it can't escape and ravage the calling environment.
Certainly using <<- to assign to the calling environment is bogus. In
addition to your complaints, it doesn't even work (except from the
global environment), since <<- searches the lexical stack rather than
the call stack.
In R, <<- can be used safely to maintain state inside a function or
shared between a set of functions (as in demo(scoping), or
demo(tkdensity)). In S-PLUS it is admittedly harder to come up with good
uses.
-thomas
Spencer Graves, PhD Senior Development Engineer PDF Solutions, Inc. 333 West San Carlos Street Suite 700 San Jose, CA 95110, USA spencer.graves at pdf.com www.pdf.com <http://www.pdf.com> Tel: 408-938-4420 Fax: 408-280-7915