[Rd] recursive default argument reference

Vadim Ogranovich vograno at evafunds.com
Wed Nov 10 03:07:04 CET 2004


Got it! Thanks to everyone for the help! Vadim 

> -----Original Message-----
> From: r-devel-bounces at stat.math.ethz.ch 
> [mailto:r-devel-bounces at stat.math.ethz.ch] On Behalf Of Gabor 
> Grothendieck
> Sent: Tuesday, November 09, 2004 5:53 PM
> To: r-devel at 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.
> 
> ______________________________________________
> R-devel at stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-devel
>



More information about the R-devel mailing list