Re: [Rd] Problem with args

2012-04-21 Thread Simon Urbanek

On Apr 21, 2012, at 1:45 PM, Gabor Grothendieck wrote:

> On Sat, Apr 21, 2012 at 1:38 PM, Simon Urbanek
>  wrote:
>> 
>> On Apr 21, 2012, at 1:03 PM, Gabor Grothendieck wrote:
>> 
>>> args ought to check that its argument is a function:
>>> 
 max <- 3
 args(max)
>>> NULL
>>> 
>>> e.g.
>>> 
 args <- function(name) {
>>> + name <- match.fun(name)
>>> + base::args(name)
>>> + }
 args(max)
>>> function (..., na.rm = FALSE)
>>> NULL
>>> 
>> 
>> You may want to read the docs in the first place:
>> 
>> Value:
>> [...]
>> 
>> 'NULL' in case of a non-function.
>> 
> 
> My post wasn't about the return value -- it was about the fact that the 
> function name can be masked.  Try the example I posted.  I also posted a 
> solution.
> 

You're passing a non-function (the value of 3) so, obviously you get NULL. I 
think you're confusing function calls with values. What you probably intended 
was

> args("max")
function (..., na.rm = FALSE) 
NULL

(again, see the documentation).

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] Problem with args

2012-04-21 Thread Gabor Grothendieck
On Sat, Apr 21, 2012 at 2:10 PM, Simon Urbanek
 wrote:
>
> On Apr 21, 2012, at 1:45 PM, Gabor Grothendieck wrote:
>
>> On Sat, Apr 21, 2012 at 1:38 PM, Simon Urbanek
>>  wrote:
>>>
>>> On Apr 21, 2012, at 1:03 PM, Gabor Grothendieck wrote:
>>>
 args ought to check that its argument is a function:

> max <- 3
> args(max)
 NULL

 e.g.

> args <- function(name) {
 +     name <- match.fun(name)
 +     base::args(name)
 + }
> args(max)
 function (..., na.rm = FALSE)
 NULL

>>>
>>> You may want to read the docs in the first place:
>>>
>>> Value:
>>> [...]
>>>
>>>     'NULL' in case of a non-function.
>>>
>>
>> My post wasn't about the return value -- it was about the fact that the 
>> function name can be masked.  Try the example I posted.  I also posted a 
>> solution.
>>
>
> You're passing a non-function (the value of 3) so, obviously you get NULL. I 
> think you're confusing function calls with values. What you probably intended 
> was
>

That's only a workaround but it does not address the problem that args
ought not to work that way.  args can gather all the information
needed to fetch the correct object but doesn't.  The second example
shows how it should work.

-- 
Statistics & Software Consulting
GKX Group, GKX Associates Inc.
tel: 1-877-GKX-GROUP
email: ggrothendieck at gmail.com

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] Problem with args

2012-04-21 Thread Gabor Grothendieck
On Sat, Apr 21, 2012 at 1:38 PM, Simon Urbanek
 wrote:
>
> On Apr 21, 2012, at 1:03 PM, Gabor Grothendieck wrote:
>
>> args ought to check that its argument is a function:
>>
>>> max <- 3
>>> args(max)
>> NULL
>>
>> e.g.
>>
>>> args <- function(name) {
>> +     name <- match.fun(name)
>> +     base::args(name)
>> + }
>>> args(max)
>> function (..., na.rm = FALSE)
>> NULL
>>
>
> You may want to read the docs in the first place:
>
> Value:
> [...]
>
>     'NULL' in case of a non-function.
>

My post wasn't about the return value -- it was about the fact that
the function name can be masked.  Try the example I posted.  I also
posted a solution.

-- 
Statistics & Software Consulting
GKX Group, GKX Associates Inc.
tel: 1-877-GKX-GROUP
email: ggrothendieck at gmail.com

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


Re: [Rd] Problem with args

2012-04-21 Thread Simon Urbanek

On Apr 21, 2012, at 1:03 PM, Gabor Grothendieck wrote:

> args ought to check that its argument is a function:
> 
>> max <- 3
>> args(max)
> NULL
> 
> e.g.
> 
>> args <- function(name) {
> + name <- match.fun(name)
> + base::args(name)
> + }
>> args(max)
> function (..., na.rm = FALSE)
> NULL
> 

You may want to read the docs in the first place:

Value:
[...]

 'NULL' in case of a non-function.

Cheers,
S

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel


[Rd] Problem with args

2012-04-21 Thread Gabor Grothendieck
args ought to check that its argument is a function:

> max <- 3
> args(max)
NULL

e.g.

> args <- function(name) {
+ name <- match.fun(name)
+ base::args(name)
+ }
> args(max)
function (..., na.rm = FALSE)
NULL


-- 
Statistics & Software Consulting
GKX Group, GKX Associates Inc.
tel: 1-877-GKX-GROUP
email: ggrothendieck at gmail.com

__
R-devel@r-project.org mailing list
https://stat.ethz.ch/mailman/listinfo/r-devel