2014-01-15 55 views

回答

21

他們在以下幾個方面有所不同。

  • print/println產生輸出用於人類消費
  • pr/prn產生輸出可以由讀取器讀取

生產用於人類輸出時因此,使用前者的功能,和後者爲其他Clojure程序產生輸出時消耗。

pr/prn的情況下,字符串將被引用,並且特殊字符會被轉義。角色也會在字符串外逃脫。

例如:

=> (println "Hello\nworld" \!) 
Hello 
world ! 

=> (prn "Hello\nworld" \!) 
"Hello\nworld" \! 
+0

不應第二行是相同的第一個? – Bobby

+0

@Bobby,你說的是我給的最後一個例子嗎?是的,那麼不行 - 第二行的輸出適合被反饋到閱讀器(一個軟件),就像程序員輸入它一樣。 –

+0

對不起,在你的第二個字符串中,你在字符串中有驚歎號,而不是一個額外的參數(因爲這給了我一個不同的輸出)......是有意的嗎? – Bobby