On 6/19/15 8:01 AM, "Ulrich =?UTF-8?B?S8O8dHRsZXIi?= <kuett...@gmail.com>" wrote:
If opAssign is allowed, a major point of functional data structures is
lost. Client code is so much better if rebinding is off the table.

I have the same instinct but not enough rationale. What would be an example in favor of the argument?

On
the other hand, there is const and immutable... I would still prefer
properly functional data structures.

In addition, is there a constructor for structural sharing, the
complement to tail? Along those line:

this(T e, SList rhs)
{
     if (rhs.root) {
          allocator = rhs.allocator;
          root = allocator.make!Node(e, 1, rhs.root);
          ++rhs.root.count;
     }
}

Yah, I implemented that to be spelled as value ~ list.

This is very exciting! Properly typed efficient functional data
structures! (In my dream, there are clojure's vector, set, map in D.)
This is just too good.

I can tell I'm pretty excited to hack at it.


Andrei

Reply via email to