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