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"