Pulling some builtin logic out

Robert Fraser fraserofthenight at gmail.com
Mon Mar 31 23:28:07 PDT 2008


Kaja wrote:
> Walter wrote in the docs:
>> Associative Arrays
>>
>> The main benefit for this is, once again, syntactic sugar. An
>> associative array keying off of a type T and storing an int value is
>> naturally written as: 
>>
>> int[T] foo;
>> rather than: 
>>
>> import std.associativeArray;
>> ...
>> std.associativeArray.AA!(T, int) foo;
>> Builtin associative arrays also offer the possibility of having associative
>> array literals, which are an often requested additional feature. 
> 
> And he's not big on standrdizing a library, but what if we could have the syntactic sugar and flexibility?  What if int[T] mapped to an interface for associative arrays rather than a class or builtin type?  Standardize the interface and not the implementation.
> 
> Then someone could still do something like this:
> 
> class MyAA(K, V) : std.associativeArray(K, V)
> {
>   // insert my implementation
> }
> 
> // compiler choice.  probably builtin implementation
> int[string] foo;
> 
> // programmer choice.
> int[string] foo2 = new MyAA!(string, int)();
> 
> Thoughts?  Comments?

I'd assume the user would be given some control, so she could, say, use 
Judy ( http://judy.sourceforge.net ) or her own implementation rather 
than a built-in/standard library implementation and look down on 
everyone else's cache inefficiencies?



More information about the Digitalmars-d mailing list