I think it makes sense for (str) to return "", but I'm not sure about (as-str) being "". It doesn't seem as obvious and expected to me.
Paul On Thu, Apr 9, 2009 at 2:57 AM, Eric Tschetter <eched...@gmail.com> wrote: > > Might I suggest > > (defn as-str > ([] "") > ([& args] > (apply str (map #(if (instance? clojure.lang.Named %) (name %) %) > args))) > > --Eric Tschetter > > On Wed, Apr 8, 2009 at 8:19 PM, Stephen C. Gilardi <squee...@mac.com> > wrote: > > > > On Apr 8, 2009, at 8:13 PM, Stuart Halloway wrote: > > > >> Changed to as-str (r654). > > > > Very nice! > > > > Should we extend as-str to any number of arguments like its close cousin > > str? > > > > Here's a proposed implementation: > > > > (defn as-str > > "With no args, returns the empty string. With one arg, returns its name > > or string representation. (as-str nil) returns the empty string. With > > more than one arg, returns the concatenation of the as-str values of the > > args." > > {:tag String} > > ([] "") > > ([x] > > (if (instance? clojure.lang.Named x) > > (name x) > > (str x))) > > ([x & ys] > > (let [sb (StringBuilder. #^String (as-str x))] > > (doseq [y ys] > > (.append sb (as-str y))) > > (.toString sb)))) > > > > Comments welcome. > > > > --Steve > > > > > > > > --~--~---------~--~----~------------~-------~--~----~ 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 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 -~----------~----~----~----~------~----~------~--~---