On the mechanics of function evaluation and argument matching
On Wed, Jul 17, 2013 at 9:58 AM, Brian Rowe <rowe at 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