Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure 如何打印带有引用值的映射键/值?_Clojure - Fatal编程技术网

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.))