There is a protocol-based zipper lib at
https://github.com/akhudek/fast-zip
In my experience it can be made even faster if perf is a huge concern.
If this lib gets upgraded, another big item is built-in support for
the full range of clojure datastructures. Currently zippers are more
limited than
clojure.zip needs to be rewritten IMO. It's written in more of a scheme
style using vectors. Since then protocols have come out and there's no
reason why this can't make use of those. And yes, at the same time new
functions could probably be added.
I've threatened to re-write this lib several time
Hi, everybody,
I'm just throwing this out to see if the Clojure core team agrees, and if
they would like me to code something up and send a PR.
clojure.zip works great if you want to walk a tree and add nodes here and
there -- append-child, insert-child, insert-left, and insert-right cover
all