From ggrothendieck at gmail.com  Thu Jun  4 18:23:54 2009
From: ggrothendieck at gmail.com (Gabor Grothendieck)
Date: Thu, 4 Jun 2009 12:23:54 -0400
Subject: [Rd] proposed changes to RSiteSearch
In-Reply-To: <4A27F2A5.70705@stats.uwo.ca>
References: <39B6DDB9048D0F4DAD42CB26AAFF0AFA07381973@usctmx1106.merck.com> 
	<20090507180930.GA1619@psych.upenn.edu>
	<39B6DDB9048D0F4DAD42CB26AAFF0AFA073C4758@usctmx1106.merck.com>
	<4A032E6F.8010001@dbmail.com> <20090507192632.GA4723@psych.upenn.edu> 
	<39B6DDB9048D0F4DAD42CB26AAFF0AFA073C4844@usctmx1106.merck.com> 
	<4A26ED1D.1020407@prodsyse.com> <4A276278.3050404@stats.uwo.ca> 
	<971536df0906040430s14c3f78fy2b1f639dfd3ce209@mail.gmail.com> 
	<4A27F2A5.70705@stats.uwo.ca>
Message-ID: <971536df0906040923s7e791559vc217183e59742902@mail.gmail.com>

On Thu, Jun 4, 2009 at 12:13 PM, Duncan Murdoch <murdoch at stats.uwo.ca> wrote:
> Gabor Grothendieck wrote:
>>
>> On Thu, Jun 4, 2009 at 1:58 AM, Duncan Murdoch <murdoch at stats.uwo.ca>
>> wrote:
>>
>>>
>>> spencerg wrote:
>>>
>>>>
>>>> Hello All:
>>>>
>>>> ? ? What do you think of adding a function "RSiteSeach" to the package
>>>> of
>>>> that name, masking the "RSiteSearch" function in "utils", trapping any
>>>> call
>>>> RSiteSearch('searchstring', 'function') to the current
>>>> RSiteSearch.function
>>>> and passing all others to "utils:::RSiteSearch"? ?This was suggested by
>>>> a
>>>> referee to a manuscript on this new capability submitted to "R Journal".
>>>> ?The current version of this manuscript is available via
>>>> "system.file('doc',
>>>> 'RSiteSearch.pdf', package='RSiteSearch')" if you have the "RSiteSearch"
>>>> package installed.
>>>>
>>>
>>> I suppose this depends on your long term plans for the function and
>>> package.
>>> ?If you think it should eventually replace the utils function, then it
>>> makes
>>> sense to use the same name: ?users won't get used to a new name in the
>>> meantime. ?But if you think it will diverge from that function, then you
>>> might as well pick a separate name now.
>>>
>>> I disagree with Gabor about this being heavy handed, at least while it is
>>> the only significant export in the package. ?If people don't want it,
>>> don't
>>> attach the package.
>>>
>>>
>>
>> The last sentence only gives you a choice of clobbering the existing
>> function or not using it and that is not very nice. ? What is wanted is
>> both to be able to use it and allow it to coexist in a nice way.
>>
>
> It is essentially a rename of the existing one to utils::RSiteSearch. ?I
> would only suggest this if RSiteSearch::RSiteSearch expanded on its
> capabilities (which I think was Spencer's proposal), rather than replacing
> them with something different.
>
>> How about R changing its RSiteSearch to be an S3 generic with the
>> main functionality being placed into RSiteSearch.default? ? Then
>> RSiteSearch.function can become RsiteSearch.character and
>> ?- RSiteSearch will give the new functionality when the package is
>> loaded and the old functionality if not.
>> - RSiteSearch.character can be used in place of RSiteSearch.function
>> to force only the new functionality (or an error if not present)
>> - RSiteSearch.default will give the old functionality whether or not the
>> package is loaded
>>
>> (If there is a NAMESPACE then Its assumed here that both methods are
>> exported.)
>>
>
> How is that an improvement? ?Just replace your (RSiteSearch,
> RSiteSearch.character, RSiteSearch.default) with (RSiteSearch,
> RSiteSearch::RSiteSearch, utils::RSiteSearch) in my proposal and you get the
> same behaviour. ?The point isn't that Spencer has invented a way for
> RSiteSearch to handle character vectors, it already knows that. ?The point
> is that he has enhanced it. ?Or maybe he has written something similar but
> different, in which case he should pick a new name.
> Duncan Murdoch
>

He simply renames it RSiteSearch.character (and possibly some other
changes depending on arguments). Then if the core cooperates
by making RSiteSearch a generic with a default method then everything
works as one would expect based on an understanding of S3.

No conflicts in names are involved.



[Rd] proposed changes to RSiteSearch
Gabor Grothendieck