There are large number of texts on data structures, and libraries of data structures code. I understand that purely functional data structure is easier to reason about. However I have trouble to understand the real world advantage of using purely functional data structure in pragmatic code (using functional programming language or not) over the imperative counterpart. Can somebody provide some real world cases where purely functional data structure has advantage and why?
Examples along the line like I use data_structure_name in programming_language to do application because it can do certain_thing.
Thanks.
PS: What I mean by purely functional data structure is not the same as persistent data structure. Persistent data structure is a data structure that doesn't change?? On other hand purely functional data structure is a data structure that operates purely.
Purely functional (aka persistent or immutable) data structures give you several advantages:
cons
(pair of value and reference-to-next-element) and connect it to the previous list. In Java you have to create completely new list not to damage the previous one.There's much more advantages, in general, it is another way of modeling the real world. This and some other chapters from SICP will give you more accurate view of programming with immutable structures, its advantages and disadvantages.