On Wed, 4 Apr 2007, Peter Ruckdeschel wrote: > Thank you, Luke, for your promptous response. > > [snipped away my original message; to be found on > https://stat.ethz.ch/pipermail/r-devel/2007-April/045216.html] > >> Sounds like lexical scoping should work for this also -- use <<- to >> assign to the variable in the containing scope. >> >> Best, >> >> luke > > yes, in my application, this really solves the problem. Thank you. > > > But I am not quite sure for the general situation: > > Recall that we have the sequence of calls > > myF() calls notmyG() which --with possibly more functions involved in > between-- > directly or indirectly calls myH(). > > Now, if I do not know exactly which variables are defined > in the intermediate notmyG() or in some of the functions called "in between", > I would have thought that using > > VariableInMyF <<- something > > within myH() bears the danger that I am overwriting > a variable of name VariableInMyF in notmyG() and "in-between's" > instead of in myF(). > > Or did I get something wrong?
I think you did. You seem to be thinking in terms of dynamic scope, which looks for variables in the caller and then the caller's caller. Lexical scope addresses exactly this problem. In lexical scope variable references are resolved on the basis of how function definitions are nested in the written code (hence the term lexical). If you define myH inside myF then free variables in myH are looked up first in myF and then in the context where myF is defined. How myH is called does not matter. Nested functions in Pascal work the same way if that helps. [In terms of the internal implementation, the enclosing environment of the environment of myH is the frame of the call to myF that created myH.] Best, luke THis is exactly the pro > > Thanks for your help > Peter > > > -- Luke Tierney Chair, Statistics and Actuarial Science Ralph E. Wareham Professor of Mathematical Sciences University of Iowa Phone: 319-335-3386 Department of Statistics and Fax: 319-335-3017 Actuarial Science 241 Schaeffer Hall email: [EMAIL PROTECTED] Iowa City, IA 52242 WWW: http://www.stat.uiowa.edu ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel