-----Original Message-----
From: r-devel-bounces@stat.math.ethz.ch
[mailto:r-devel-bounces@stat.math.ethz.ch] On Behalf Of Gabor
Grothendieck
Sent: Tuesday, November 09, 2004 5:53 PM
To: r-devel@stat.math.ethz.ch
Subject: Re: [Rd] recursive default argument reference
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.