[R] Lexical scoping is not what I expect

Duncan Murdoch murdoch.duncan at gmail.com
Tue Jun 25 13:08:32 CEST 2013


On 13-06-24 9:22 PM, David Kulp wrote:
> Indeed, I misread / misunderstood. I think it's a difficult concept
> that's hard to explain and the example wasn't great. But thanks all for
> straightening me out!

It seems like a really natural definition to me, but I'm used to it. 
Once you get used to it you'll probably find it quite easy too.

It may be helpful not to worry about the technical details, just to look 
at the source code defining the function:  if it is defined in a place 
where a variable can be seen, it can see that variable.

Duncan Murdoch

>> David Kulp
>
>
> On Mon, Jun 24, 2013 at 6:44 PM, Duncan Murdoch
> <murdoch.duncan at gmail.com <mailto:murdoch.duncan at gmail.com>> wrote:
>
>     On 13-06-24 4:27 PM, David Kulp wrote:
>      > According to
>     http://cran.r-project.org/doc/contrib/Fox-Companion/appendix-scope.pdf
>     and other examples online, I am to believe that R resolves variables
>     using lexical scoping by following the frames up the call stack.
>
>     You appear to have misread it. Lexical scoping follows the chain of
>     environments where functions were defined. It ignores the call stack.
>
>     Duncan Murdoch
>
>
>
>     However, that's not working for me. For example, the following code,
>     taken from the reference above fails instead of returning 7. What am I
>     doing wrong? Thanks!
>      >
>      > f <- function(x) { a<-5; g(x) }
>      > g <- function(y) { y + a }
>      > f(2)
>      > Error in g(x) : object 'a' not found
>      >
>      >
>      > [[alternative HTML version deleted]]
>      >
>      > ______________________________________________
>      > R-help at 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.
>      >
>
>



More information about the R-help mailing list