Clojure 如何打印带有引用值的映射键/值?
通常在打印地图时,这些值是不带引号的Clojure 如何打印带有引用值的映射键/值?,clojure,Clojure,通常在打印地图时,这些值是不带引号的 (打印{: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") ) 地图中的任何内容都不会被打印出来,只需使用pr/prn而不
(打印{: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")
)
地图中的任何内容都不会被打印出来,只需使用
pr
/prn
而不是print
/println
,因为它们生成的字符串可以被读取器读回,这意味着字符串将被引用:
(print (str {:a "82834"}))
;{:a "82834"}
=> nil
user=> (prn {:a "10" :b 20 :c "21"})
{:a "10", :b 20, :c "21"}
nil
只需使用
pr
/prn
而不是print
/println
,因为它们生成的字符串可以被读取器读回,这意味着字符串将被引用:
user=> (prn {:a "10" :b 20 :c "21"})
{:a "10", :b 20, :c "21"}
nil
此处解释了未打印内容的原因:。此处解释了未打印内容的原因:。啊,这太完美了-我确实想打印一些可以返回到阅读器中的内容。谢谢。啊,这太完美了——我确实想打印一些东西,让它回到阅读器中。谢谢。@marathon可能是因为它不如中的标准函数。没问题:)
str
可能适用于这里的字符串,但pr
用于写出(很可能)可以读回的内容。e、 g.(str(java.util.Date.))
vs(pr(java.util.Date.))
@marathon可能是因为它不如使用标准函数,如中所示。没问题:)str
可能适用于这里的字符串,但pr
用于写出(很可能)可以读回的内容。e、 g.(str(java.util.Date.))
vs(pr(java.util.Date.))