Clojure printing functions: pr vs print
clojure
Solution
They differ in the following ways.
- `print`/`println` produce output intended for human consumption
- `pr`/`prn` produce output that may be read by the reader
So 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" \!
Problem
What is the difference between `pr`/`prn` and `print`/`println`? When would one be used over the other?