Isn't using find with retro awkward?
jam
gr0v3er+d at gmail.com
Wed Feb 16 14:58:12 PST 2011
On Wed, 16 Feb 2011 22:00:13 +0100, Andrej Mitrovic wrote:
> On 2/16/11, jam <gr0v3er+d at gmail.com> wrote:
>> void main()
>> {
>> auto a = [5,1,2,3,4,5,1];
>> auto index = countUntil(retro(a),5);
>> writeln(a[a.length-1-index .. a.length]);
>> }
>>
>>
> That works for random-access ranges.
> But I was under the impression that bidirectional ranges don't
> necessarily have a length property?
Doh. That is exactly correct. I guess the following would work for
bidirectional ranges:
import std.stdio,std.algorithm,std.range,std.container;
void main()
{
auto a = [5,1,2,3,4,5,1];
auto index = countUntil(retro(a),5);
auto R = retro(take(retro(a),index+1));
writeln(R);
R[0] = 6;
writeln(a);
}
but this is just getting nutty.
More information about the Digitalmars-d-learn
mailing list