Have you looked at: clojure.walk ? clojure.zip ?
namespaces? You could use either to traverse and set meta data. There are also 'zipper' predicate libraries that do similar things as 'specter' On Thursday, June 25, 2015 at 12:35:54 PM UTC-4, Brian Marick wrote: > > Suppose we have a structure like this: > > [ :a [:a :b :c] [:a [:b1 :b2] :c ] ] > > That is a *required* list. It consists of keywords and *paths* (nested > vector like [:a :b :c] above). A path consists of keywords and > *alternates* (a twice-nested vector like [:b1 :b2]) above. > > It's easy to descend this by hand and keep track of which "type" of > vector you're dealing with. However, this sort of thing comes up enough > that it would be convenient if there were a function that takes a > grammar and a structure and returns that structure annotated (metadata?) > with type information. Coupled with Specter > https://github.com/nathanmarz/specter, that would make a good number of > data transformations easy-peasy. > > Is there such a library? Or a library I can build on? A quick scan shows > a lot of parsers for dealing with strings, but we've already got one of > those: it's called `read`. > > @marick > -- You received this message because you are subscribed to the Google Groups "Clojure" group. To post to this group, send email to clojure@googlegroups.com Note that posts from new members are moderated - please be patient with your first post. To unsubscribe from this group, send email to clojure+unsubscr...@googlegroups.com For more options, visit this group at http://groups.google.com/group/clojure?hl=en --- You received this message because you are subscribed to the Google Groups "Clojure" group. To unsubscribe from this group and stop receiving emails from it, send an email to clojure+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/d/optout.