Thanks for the help! I created a small function, which convert the nodes of a nested collection to strings:
(defn rec-to-strs [f] "recursively change parameters to strings" (vec (for [c f] (if (coll? c) (vec (rec-to-strs c)) (str c))))) I use this function from a macro as suggested. On Oct 22, 4:53 pm, Sean Devlin <francoisdev...@gmail.com> wrote: > Or, you could just write foo as > > ;;Adjusting for 2d > (defmacro foo > [vec-vec-of-symbols] > (let [vec-vec-of-str (vec (map (comp vec (partial map str)) vec-vec- > of-symbols))] > `(foo* ~vec-vec-of-str))) > > This let you write foo* to handle strings. Anyway, the key thing to > note in both examples is that the heavy lifting is delegated to > another function. This is an element of good macro design. > > Just my $.02 > > On Oct 22, 10:29 am, Meikel Brandmeyer <m...@kotka.de> wrote: > > > Hi, > > > On Oct 22, 4:22 pm, Tzach <tzach.livya...@gmail.com> wrote: > > > > I’m writing a small facility which get vector of vectors of names > > > (strings) and print them in a special format. > > > Something like (foo [[“aname” “a-different-name”] [ “oneMoreName”]]) > > > This works fine, but make it hard to write all the quotations when > > > many parameters are used. > > > > What is the simplest way to define foo as > > > (foo [[aname a-different-name ] [oneMoreName]]) ? > > > > Is macro required? (I guess it is) > > > It is, but a simple one. Rename your foo function to foo* and create a > > simple macro called foo like that: > > > (defmacro foo > > [vec-of-symbols] > > `(foo* (quote ~vec-of-symbols))) > > > There you go. (Of course you must now handle Symbols in your foo* star > > function instead of Strings...) > > > Sincerely > > Meikel --~--~---------~--~----~------------~-------~--~----~ 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 -~----------~----~----~----~------~----~------~--~---