[Rd] proposed changes to RSiteSearch

Gabor Grothendieck ggrothendieck at gmail.com
Thu Jun 4 18:23:54 CEST 2009


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.



More information about the R-devel mailing list