Retrieving the traversed range
Andrei Alexandrescu
SeeWebsiteForEmail at erdani.org
Fri Aug 27 16:43:49 PDT 2010
On 8/27/10 16:38 PDT, Manfred_Nowak wrote:
> Andrei Alexandrescu wrote:
>
>> retro is O(1) today.
>
> Thx, but then I am missing the whole point of this thread.
It's simple: the OP wanted this:
- start with a bidir range r
- move from the LEFT in it for a while
- then reverse whatever is to the LEFT of the walking point
This is impossible in today's D without extra walks. You can reverse
what's to the RIGHT of the walking point. You can also reverse what's to
the LEFT of the walking point IF you start the walk from the right.
The more I think of it, the more I think beforeAll(r, postfix) and
afterAll(r, prefix) are two optional primitives that should cover this
need very nicely and safely. In my previous unslept nights when I was
tormented by this I couldn't see that these primitives are actually
provably save in O(1) time.
Andrei
More information about the Digitalmars-d
mailing list