What is the difference between pr
/prn
and print
/println
?
When would one be used over the other?
They differ in the following ways.
print
/println
produce output intended for human consumptionpr
/prn
produce output that may be read by the readerSo use the former functions when producing output for humans, and the latter for when producing output for other Clojure programs to consume.
In the case of pr
/prn
, strings will be quoted, and special characters escaped. Characters will also be escaped outside of strings.
For example:
=> (println "Hello\nworld" \!)
Hello
world !
=> (prn "Hello\nworld" \!)
"Hello\nworld" \!