On Tuesday, 5 June 2012 at 04:42:07 UTC, Dmitry Olshansky wrote:
On 05.06.2012 2:28, Roman D. Boiko wrote:
My example concern was about fundamental problem of range APIs
for
immutable data structures, which is not possible to emulate:
popFront is
mutating by design.
Keep in mind Ranges are temporary object most of the time. They
are grease for wheels of algorithms. Given data structure S,
it's range is R(element of S). Thus for immutable data
structure range will be mutable entity of immutable element
type.
Interesting example is immutable strings, that still have
ranges over them, that even return dchar not an immutable(char).
I'm currently trying this approach (instead of working with
immutable data structures directly, which would require recursion
everywhere) in my experimental functional data structures, and it
looks promising. :)