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