Thanks for the lead. Given the example in ?missing though, wouldn't it be safer to explicitly define a default value of NULL:
myplot <- function(x, y=NULL) { if(is.null(y)) { y <- x x <- 1:length(y) } plot(x, y) } On Jul 17, 2013, at 11:05 AM, "R. Michael Weylandt" <michael.weyla...@gmail.com> wrote: > On Wed, Jul 17, 2013 at 9:58 AM, Brian Rowe <r...@muxspace.com> wrote: >> Hello, >> >> Section 4.3.2 of the R language definition [1] states that argument matching >> to formal arguments is a 3-pass process to match arguments to a function. An >> error is generated if any (supplied) arguments are left unmatched. >> Interestingly the opposite is not true as any unmatched formals does not >> generate an error. >> >>> f <- function(x,y,z) x >>> f(2) >> [1] 2 >>> f(2,3) >> [1] 2 >> >> Since R is lazily evaluated, I understand that it is not an error for an >> unused argument to be unassigned. However, it is surprising to me that a >> function need not be called with all its required arguments. I guess in this >> situation technically "required arguments" means required and referenced >> arguments. >> >>> f() >> Error in f() : argument "x" is missing, with no default >> >> Can anyone shed light on the reasoning for this design choice? > > I'm not sure I can, but I'd look around at how the missing() function is used. > > Cheers, > MW ______________________________________________ R-devel@r-project.org mailing list https://stat.ethz.ch/mailman/listinfo/r-devel