DIP67: Associative Ranges

Freddy via Digitalmars-d digitalmars-d at puremagic.com
Wed Oct 29 11:40:50 PDT 2014


On Wednesday, 29 October 2014 at 18:04:30 UTC, John Colvin wrote:
> On Wednesday, 29 October 2014 at 17:36:41 UTC, H. S. Teoh via 
> Digitalmars-d wrote:
>> On Wed, Oct 29, 2014 at 05:23:07PM +0000, Brad Anderson via 
>> Digitalmars-d wrote:
>>> On Wednesday, 29 October 2014 at 06:59:09 UTC, bearophile 
>>> wrote:
>>> >This is very false. I have tons of cases where you only 
>>> >iterate on
>>> >values or keys. On the other hand I have suggested several 
>>> >times that
>>> >I'd like a byPairs (that yields keys-values tuple pairs).
>>> >
>>> 
>>> It happens to me too but it's very much a minority of uses. 
>>> Having
>>> sets as well as maps would help replace some of these cases. 
>>> Not all,
>>> of course.
>>> 
>>> >
>>> >>Doing byKey requires you to do a lookup to get the 
>>> >>corresponding
>>> >>value which just takes up cycles unnecessarily.
>>> >
>>> >Usually people use a "AA.byKey.zip(AA.byValue)" that is not 
>>> >reliable.
>>> 
>>> Better than doing key lookups on every iteration but awfully 
>>> ugly and
>>> should be unnecessary. byPairs sounds good.
>>
>> I've submitted a PR for byPair before, but it was roadblocked 
>> by the
>> fact that people demand that it return std.typecons.Tuple, yet 
>> we're not
>> allowed to import Phobos in druntime. Other than this IMO 
>> nitpicky
>> issue, the code was already all ready to go many moons ago.
>>
>>
>> T
>
> Can byPair be implemented in phobos, or does it need to access 
> private/package stuff in druntime?

I don't see why not,It could be put into std.range and accept a
generic associative range(which includes the build-in associative
array).


More information about the Digitalmars-d mailing list