如何使用引用的值打印地图键/值?

时间:2017-01-07 20:27:16

标签: clojure

通常在打印地图时,值不加引号。

(print {:abc "0" :def "1"})会产生{:abc 0 :def 1}。我希望输出看起来像{:abc "0" :def "1"}

我试图使用map函数来获取每个键值对,但这不起作用。

这是我的尝试:

(defn print-map [m]
  (print "{")
  (map #((print (first %) "\"" (second %) "\",")) m)
  (print "}\n")
  )

地图中没有任何内容被打印

2 个答案:

答案 0 :(得分:4)

只需使用pr / prn代替print / println,因为它们会生成可由读者读回的字符串,这意味着字符串会被引用:

user=> (prn {:a "10" :b 20 :c "21"})
{:a "10", :b 20, :c "21"}
nil

答案 1 :(得分:0)

(print (str {:a "82834"}))
;{:a "82834"}
=> nil