Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Clojure printing functions: pr vs print

Tags:

clojure

What is the difference between pr/prn and print/println?

When would one be used over the other?

like image 229
Drew Noakes Avatar asked Jan 15 '14 11:01

Drew Noakes


1 Answers

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" \!
like image 78
Drew Noakes Avatar answered Oct 11 '22 18:10

Drew Noakes