Sorry I forgot one of the dots. Here it is corrected: > bar <- function() 1 > foo <- function(bar. = bar()) { + bar. + } > foo() [1] 1 > foo(bar = bar) function() 1
On 9/12/06, Gabor Grothendieck <[EMAIL PROTECTED]> wrote: > You can't have x=x in an argument list. > > Try the following noting that we put a dot at the end of bar: > > > bar <- function() 1 > > foo <- function(bar. = bar()) { > + bar > + } > > foo() > function() 1 > > foo(bar = bar) > function() 1 > > On 9/11/06, Deepayan Sarkar <[EMAIL PROTECTED]> wrote: > > Hi, > > > > I know S manuals used to warn against using the same names for a > > variable and a function, but I have never seen that cause problems in > > R, so I usually don't pay much attention to it. Which is why the > > following behaviour came as a surprise: > > > > > bar <- function() 1 > > > foo <- function(bar = bar()) { > > + bar > > + } > > > foo(9) > > [1] 9 > > > foo() > > Error in foo() : recursive default argument reference > > > > Exactly what rule am I violating here? > > > > The following gives a slightly different error, but I assume it has a > > similar origin: > > > > bar <- function() 1 > > foo <- function(bar) { > > if (missing(bar)) bar <- bar() > > bar > > } > > foo() > > > > This version works fine though (so the rule probably involves function > > arguments somehow): > > > > foo <- function(baz) { > > if (missing(baz)) { > > baz <- function() 2 > > baz <- baz() > > } > > baz > > } > > foo() > > > > -Deepayan > > > > ______________________________________________ > > R-devel@r-project.org mailing list > > https://stat.ethz.ch/mailman/listinfo/r-devel > > > ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel