DIP67: Associative Ranges

Freddy via Digitalmars-d digitalmars-d at puremagic.com
Fri Oct 31 17:18:10 PDT 2014


On Saturday, 1 November 2014 at 00:04:18 UTC, Jakob Ovrum wrote:
> On Tuesday, 28 October 2014 at 22:44:32 UTC, Freddy wrote:
>> http://wiki.dlang.org/DIP67
>> Abstraction over the build-in associative array(one type of 
>> range
>> for containers and another type for dynamic generators).
>> Plese criticize.
>
> Any examples of what this actually accomplishes? Maybe an 
> example of an algorithm that can do something useful with these 
> primitives? A rationale for why these are the chosen primitives?
>
> As the proposed "associative range" isn't consumable like other 
> ranges, this seems more like a specific kind of *container*, 
> not a *range*; indeed the text of the DIP seems to conflate the 
> concepts, but they are separate by necessity.
>
> Note that opIndex and opBinaryRight are already container 
> primitives (see std.container). There's also the additional 
> relevant primitive `removeKey`. Beyond that though, associative 
> containers could need some more fleshing out in the container 
> concept.
>
> As it is, I think this proposal suffers both from lack of 
> substance and confusing terminology.

The pull request has already been denied. I didn't know about
std.container's definitions.

They can't be consumable, built-in associative arrays overload
foreach(key,value;array) adding input range primitives would
conflict.


More information about the Digitalmars-d mailing list