std.range: Lockstep vs. Zip

HSteffenhagen via Digitalmars-d-learn digitalmars-d-learn at puremagic.com
Wed Mar 2 05:34:22 PST 2016


On Wednesday, 2 March 2016 at 08:51:07 UTC, Manuel Maier wrote:
> Hi there,
>
> I was wondering why I should ever prefer std.range.lockstep 
> over std.range.zip. In my (very limited) tests std.range.zip 
> offered the same functionality as std.range.lockstep, i.e. I 
> was able to iterate using `foreach(key, value; 
> std.range.zip(...)) {}` which, according to the docs, is what 
> std.range.lockstep was supposed to be designed for. On top of 
> that, std.range.zip is capable of producing a 
> RandomAccessRange, but std.range.lockstep only produces 
> something with opApply.
>
> Cheers

I'm not entirely sure, but I get the impression lockstep is a 
special case of zip. I suspect if you don't need anything zip 
offers over lockstep (mutability, random access) you won't gain 
anything from using it.

I'm usually using zip in this circumstance, but if all you're 
doing is iterating there doesn't seem to be a reason to not use 
lockstep.


More information about the Digitalmars-d-learn mailing list