From murdoch at stats.uwo.ca  Tue Nov  1 16:56:54 2005
From: murdoch at stats.uwo.ca (Duncan Murdoch)
Date: Tue, 01 Nov 2005 10:56:54 -0500
Subject: [Rd] [R] unvectorized option for outer()
In-Reply-To: <Pine.LNX.4.63a.0511010713550.30147@homer21.u.washington.edu>
References: <8B08A3A1EA7AAC41BE24C750338754E69FDF14@HERMES.demogr.mpg.de>	<43629490.9060204@acm.org>	<971536df0510281643u50929fa6rf097c40948700804@mail.gmail.com>	<4364A4FC.2030400@durham.ac.uk>	<Pine.LNX.4.63a.0510301300260.28148@homer23.u.washington.edu>	<x2y84amyv4.fsf@turmalin.kubism.ku.dk>
	<43666D4D.7070602@acm.org>	<4366738C.1080508@stats.uwo.ca>
	<4366833E.8000508@acm.org>	<436778D5.2010800@stats.uwo.ca>
	<Pine.LNX.4.63a.0511010713550.30147@homer21.u.washington.edu>
Message-ID: <43679046.10209@stats.uwo.ca>

On 11/1/2005 10:16 AM, Thomas Lumley wrote:
> On Tue, 1 Nov 2005, Duncan Murdoch wrote:
> 
>> The version I posted yesterday did indeed mess up when some arguments were 
>> unspecified.  Here's a revision that seems to work in all the tests I can 
>> think of.  I also added the SIMPLIFY and USE.NAMES args from mapply to it, 
>> and a sanity check to the args.
>>
>> I did notice and work around one buglet in mapply:  if you choose not to 
>> vectorize any arguments, you don't get a call to the original function, 
>> mapply returns "list()".
>>
>> For example,
>>
>>> mapply(function(x) x^2, MoreArgs = list(x=2))
>> list()
>>
>> whereas I would think 4 is a more logical answer.
>>
> 
> I don't agree at all.  The answer should be the length of the longest 
> vectorised argument, and it is.

I do agree that if I'd specified something like

mapply(function(x) x^2, x=numeric(0))

then the answer (which is again list()) would be correct.  But
what is the length of the longest item in an empty set?  I'd say it's 
undefined.

Duncan Murdoch



[Rd] [R] unvectorized option for outer()
Duncan Murdoch