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
-~----------~----~----~----~------~----~------~--~---

Reply via email to