else conditionals clojure

else - clojure conditionals



¿Cómo puedo imprimir un PersistentHashMap en Clojure en una cadena? (4)

Esto debería ayudar:

(clojure.pprint/write {:a 1 :b 2} :stream nil)

Según clojure.pprint / escribir documentation

Devuelve el resultado de la cadena si: stream es nil o nil de lo contrario.

¿Cómo puedo imprimir un PersistentHashMap en Clojure en una cadena? Estoy buscando algo como:

(str (pprint {... hash map here...})

que puedo pasar como una cadena


(let [s (java.io.StringWriter.)] (binding [*out* s] (clojure.pprint/pprint {:a 10 :b 20})) (.toString s))

Edición: Equivalente versión sucinta:

(with-out-str (clojure.pprint/pprint {:a 10 :b 20}))


(pr-str {:a 1 :b 2}) ;; => "{:a 1, :b 2}"


user=> (import java.io.StringWriter) java.io.StringWriter user=> (use ''[clojure.pprint :only (pprint)]) nil user=> (defn hashmap-to-string [m] (let [w (StringWriter.)] (pprint m w)(.toString w))) #''user/hashmap-to-string user=> (hashmap-to-string {:a 1 :b 2}) "{:a 1, :b 2}/n"