std.range: Lockstep vs. Zip
Alex Parrill via Digitalmars-d-learn
digitalmars-d-learn at puremagic.com
Thu Mar 3 07:00:10 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
zip uses the InputRange protocol, and bundles up all the values
in a Tuple.
lockstep uses the opApply protocol, and doesn't bundle the values.
Lockstep is useful for foreach loops since you don't need to
unpack a tuple, but zip is compatible with all of the std.range
and std.algorithm functions that take ranges.
More information about the Digitalmars-d-learn
mailing list