I've been using Clojure for a few years now and zippers have always been a blindspot (had no idea even _when_ they would be useful), this is a remarkable tutorial!
Once for navigating a collection of deeply nested routes in a webapp, and once for navigating deeply nested xml to grab very particular data.
Both times it was pretty pleasant and nice to use.
I wouldn't reach for them in most normal situations cause they're more complicated to get right than simple looping (or `clojure.walk/prewalk`), but if you have large semi-predictable data structures, you can do cool stuff with zippers.
Once for navigating a collection of deeply nested routes in a webapp, and once for navigating deeply nested xml to grab very particular data.
Both times it was pretty pleasant and nice to use.
I wouldn't reach for them in most normal situations cause they're more complicated to get right than simple looping (or `clojure.walk/prewalk`), but if you have large semi-predictable data structures, you can do cool stuff with zippers.