Replacement for Zip/Lockstep

monarch_dodra monarchdodra at gmail.com
Sun Mar 16 15:37:52 PDT 2014


I have an issue with these 2 functions: They have a run-time 
stopping condition.

This is bad on several counts:
1. Piss poor performance. Also, the "safe" default of "shortest" 
doen't help.
2. Traits support. In particular, things like length, empty or 
infinite. Mixing inifinite and non-inifinite ranges creates 
something that may or may not be infinite...

These issues are *not* solvable "in-place". The only solution is 
a new range, but that takes its argument statically. I think it 
would have big net benefits. And it would break nothing, since we 
could keep around zip/lockstep (but not recommend them).

I'd want to start working on this, but I wanted to touch on a few 
things here first:
1. Name? I'd need a name for this. Any thoughts?
2. Default value? AFAIK, *all* the times I've seen Zip/Lockstep 
in action, it was on ranges that had the same length, yet used 
the default "shortest" option, which is bad. I think it would be 
better to default on `requireSameLength`, and have 
shortest/longuest as explicit requests.

Thoughts? Suggestions for names?


More information about the Digitalmars-d mailing list