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" \!