2017-01-07 4 views
0

通常、マップを印刷すると、値は引用符で囲まれません。値を引用してマップキー/値を印刷するにはどうすればいいですか?

(print {:abc "0" :def "1"})結果は{:abc 0 :def 1}である。出力を見たいと思います{:abc "0" :def "1"}

マップ関数を使用してすべてのキーと値のペアを取得しようとしましたが、動作しませんでした。

は、これは私の試みであった:マップから

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

何も彼らが戻って読み取ることができる文字列を生成するので、単に、print/printlnの代わりにpr/prnを使用

+0

何も印刷されない理由は、ここで説明されています:http://stackoverflow.com/q/39910297。 – glts

答えて

4

を印刷しませんます文字列が引用されることを意味します。

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

ああ、これは完璧です - 私は読者に戻るだろう何かを印刷したいと思いました。ありがとう。 – marathon

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

私はなぜこれがdownvotedされているかわからない、それは動作します! – marathon

+0

@ marathonおそらく標準関数を使うよりも劣っていると思われるので、[@ leetwinskiの答え](http://stackoverflow.com/a/41527286/1562315)。問題はありません:) – Thumbnail

+0

'str'はここで文字列として機能しますが、' pr'は物事を書き出すために使われます。 – cfrick

関連する問題