On Thu, 17 Feb 2011 00:05:15 +0100, Andrej Mitrovic wrote: > On 2/16/11, jam <gr0v3e...@gmail.com> wrote: >> >> 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. >> >> >> > Nutty, but it's great how much lines you can save when composing ranges. > retro and take are both lazy afaik, so this can't be that bad?
Well take is for sure, but I'm not sure about retro(I didn't see anything in range.d or the online docs that indicate it is). You could save some work by just reversing the container once at the start though.