Does D have "structural sharing" of immutable collections?

Roman D. Boiko rb at d-coding.com
Wed May 23 08:05:21 PDT 2012


On Wednesday, 23 May 2012 at 14:35:31 UTC, bearophile wrote:
> Chris Dew:
>
>> Does D have "structural sharing" of its immutable collections?
>>
>> i.e. Can I make a copy of an immutable Map or List collection 
>> with an extra (or mutated) member, and will the returned (new) 
>> collection share most of it's structure with the earlier 
>> collection.
>
> Currently Phobos doesn't have a Map (there are built-in 
> associative arrays), and there isn't a true List (there is a 
> linked list, that so far I have not used).
> Currently I think nothing in D works as you ask, it doesn't 
> even have "immutable collections" like a Finger Tree or 
> something.
> But writing such collections is well within D type system 
> capabilities, so I think eventually they will be present in 
> Phobos if there is enough need.
>
> Bye,
> bearophile

I need some immutable collections for my D Compiler Tools 
project, namely linked list, red-black tree, and possibly some 
others.

So I'm going to create them for my use, and later generalize. 
I've created a project on GitHub, but didn't implement anything 
useful yet.

Some more information is available at 
http://d-coding.com/2012/05/21/functional-data-structures.html


More information about the Digitalmars-d mailing list