Re: [Rd] Getting param names of primitives

From: Prof Brian Ripley <>
Date: Wed, 11 Jul 2007 15:19:26 +0100 (BST)

On Wed, 11 Jul 2007, Duncan Murdoch wrote:

> On 7/11/2007 9:40 AM, Seth Falcon wrote:
>> Prof Brian Ripley <> writes:
>>> My problem is that if we make formals() work on primitives, people will
>>> expect
>>> formals(log) <- value
>>> to work, and it cannot.
>> But it could give an informative error message. Asking for formals()
>> seems to make sense so making it work seems like a good idea. I'll
>> agree that it working might encourage someone to try formals<-(), but
>> the fact that it cannot do anything but error seems like a strange
>> reason not to make formals() work.
> But primitives don't have formals, and that's why you can't set them. Having
> formals(primitive) work just makes it harder to talk about the language.
> Closures have formals, primitives don't. Both have args. If you want to
> work with the args of a function, use the args.

I agree: I was going to reply to Seth that the main reason was that 'formals() ought to refer to formals which primitives lack'.

And note too that args(<primitive>) does not work for all primitives, as some are really part of the language (e.g. for(), return()). Exactly which are is perhaps debatable, and the person who implemented the mechanism got to decide.

Brian D. Ripley,        
Professor of Applied Statistics,
University of Oxford,             Tel:  +44 1865 272861 (self)
1 South Parks Road,                     +44 1865 272866 (PA)
Oxford OX1 3TG, UK                Fax:  +44 1865 272595

______________________________________________ mailing list
Received on Wed 11 Jul 2007 - 14:42:33 GMT

Archive maintained by Robert King, hosted by the discipline of statistics at the University of Newcastle, Australia.
Archive generated by hypermail 2.2.0, at Wed 11 Jul 2007 - 17:36:13 GMT.

Mailing list information is available at Please read the posting guide before posting to the list.