Tested in: R version 2.8.1 (2008-12-22) / Windows Recursive default argument references normally give nice clear errors. In the first set of examples, you get the error:
Error in ... : promise already under evaluation: recursive default argument reference or earlier problems? (function(a = a) a ) () (function(a = a) c(a) ) () (function(a = a) a[1] ) () (function(a = a) a[[1]] ) () (function(a = a) a$x ) () (function(a = a) mean(a) ) () (function(a = a) sort(a) ) () (function(a = a) as.list(a) ) () But in the following examples, R seems not to detect the 'promise already under evaluation' condition and instead gets a stack overflow, with the error message: Error: C stack usage is too close to the limit (function(a = a) (a) ) () (function(a = a) -a ) () (function(a = a) var(a) ) () (function(a = a) sum(a) ) () (function(a = a) is.vector(a) ) () (function(a = a) as.numeric(a) ) () I don't understand why the two sets of examples behave differently. -s ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel