[Rd] recursive default argument reference
Gabor Grothendieck
ggrothendieck at myway.com
Wed Nov 10 02:53:18 CET 2004
Vadim Ogranovich <vograno <at> evafunds.com> writes:
:
: Hi,
:
: It seems that a formal function argument can not default to an "outer"
: variable of the same name:
:
: > x <- "foo"
: > ff <- function(x=x) x
: > ff()
: Error in ff() : recursive default argument reference
: >
:
: Is this intentional? Why?
:
Because then one arg could not safely refer to another. Here
x has y as its default value:
x <- 10
y <- 7
f <- function(x = y, y = 3) print(x)
f() # prints 3
Note that you could do this:
x <- "foo"
ff <- function(x.=x) x.
ff() # returns "foo"
ff(x=44) # returns 44
ff(55) # returns 55
For a real example look at merge.data.frame.
More information about the R-devel
mailing list