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 <[email protected]> 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 [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/clojure?hl=en
-~----------~----~----~----~------~----~------~--~---