[Haskell-cafe] I just don't get it (data structures and OO)
Phlex
Phlex at telenet.be
Sun Jun 3 03:41:29 EDT 2007
Donald Bruce Stewart wrote:
> Phlex:
>
>> On the other side, using the functional paradigm, it seems to me that
>> the function i use in order to create a _new_ inhabitant with a
>> different age will need to have knowledge of the country over it, the
>> planet ..and so on up to the universe...as i need to update all these
>> structures to reflect the change. This is pretty bad and most probably
>> doesn't need to be like this.
>>
> Nope, its not done like that. You share as much of the original
> structure as you can, as a general principle.
>
> Imagine updating a node in a tree by just detaching and reattaching a
> pointer.
>
> [1] [1]
> / \ / \
> [2] [3] update node 5 [2] [3]
> / \ with value 7 / \
> [4] [5] [4] *
>
> and share the rest of the structure. Since the rest isn't mutable
> anyway, you can share all over.
>
> -- Don
That's precisely the thing i don't understand.
In order to update node 3 with a new pointer, i need to mutate it, so i
need to recreate it, and so on up to node 1.
Now in this exemple, it's ok since that's a regular tree and the process
can be automated, but when each node has a different type, it can become
quite hairy.
Sacha
More information about the Haskell-Cafe
mailing list