From murdoch at stats.uwo.ca  Wed Jul 11 16:11:04 2007
From: murdoch at stats.uwo.ca (Duncan Murdoch)
Date: Wed, 11 Jul 2007 10:11:04 -0400
Subject: [Rd] Getting param names of primitives
In-Reply-To: <m2fy3v6ou0.fsf@ziti.fhcrc.org>
References: <d35b9da60707102141q60586e66w88a4b991595edcd0@mail.gmail.com>	<Pine.LNX.4.64.0707110546480.27029@gannet.stats.ox.ac.uk>	<18068.45289.14125.872148@stat.math.ethz.ch>	<Pine.LNX.4.64.0707111314380.5891@gannet.stats.ox.ac.uk>
	<m2fy3v6ou0.fsf@ziti.fhcrc.org>
Message-ID: <4694E4F8.3090000@stats.uwo.ca>

On 7/11/2007 9:40 AM, Seth Falcon wrote:
> Prof Brian Ripley <ripley at stats.ox.ac.uk> 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.

Duncan Murdoch



[Rd] Getting param names of primitives
Duncan Murdoch