On 9/14/2006 3:01 PM, Seth Falcon wrote: > Hi, > > Can someone help me understand why > > substitute(function(a) a + 1, list(a=quote(foo))) > > gives > > function(a) foo + 1 > > and not > > function(foo) foo + 1 > > The man page leads me to believe this is related to lazy evaluation of > function arguments, but I'm not getting the big picture.
I think it's the same reason that this happens: > substitute(c( a = 1, b = a), list(a = quote(foo))) c(a = 1, b = foo) The "a" in function(a) is the name of the arg, it's not the arg itself (which is missing). Now a harder question to answer is why this happens: > substitute(function(a=a) 1, list(a=quote(foo))) function(a = a) 1 I would have expected to get "function(a = foo) 1". Duncan Murdoch ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel