The rfind challenge

monarch_dodra monarchdodra at gmail.com
Tue Jan 15 05:20:41 PST 2013


On Tuesday, 15 January 2013 at 12:56:43 UTC, Andrei Alexandrescu 
wrote:
> On 1/15/13 2:20 AM, monarch_dodra wrote:
>> On Tuesday, 15 January 2013 at 05:51:16 UTC, Andrei 
>> Alexandrescu wrote:
>>> R rfind(R, E)(R range, E element)
>>> {
>>> for (;;)
>>> {
>>> auto ahead = range.save.find(element);
>>> if (ahead.empty) return range;
>>> range = ahead;
>>> }
>>> }
>>
>> I'd hardly call that an ideal solution >:( The point of rfind 
>> is to not
>> start the search from the start of the string.
>
> I may reply to the rest, but let me destroy this quickly: this 
> is the implementation for a forward range that's not 
> bidirectional.

I'd argue against providing rfind at all if R is not 
bidirectional. But that's not the thread's main issue, so let's 
not focus on this.

> The challenge is indeed implementing rfind for bidirectional 
> ranges that are not random (e.g. strings).
>
> Andrei

Agreed.

On a side note, it would be very easy if we agreed to return the 
subrange starting at the beginning of range, and ending after the 
last element.

But that's really just avoiding the problem.


More information about the Digitalmars-d mailing list