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

Reply via email to