:dustingetz/clojure-tree-seq
Clojure's
tree-seq
encodes a generic tree traversals. It is a little tricky to wrap your head around but once you grok it, it comes up everywhere!
(1 2 3 4 5 6 7 8 9 10 11 12)