(println & more)
Same as print followed by (newline)
user=> (println "Hello world.")
Hello world.
nil
user=> (def items [ "hello" :a 1 (list :b 2) \\c {:d 4} #{5 6 7} ])
#'user/items
; println is for human-readable output, like a report. Note the lack of quotes around the string "hello" and the unescaped letter "c".
user=> (println items)
[hello :a 1 (:b 2) c {:d 4} #{5 6 7}]
nil
; prn outputs items in a machine-readable format, such as in a source
; file. Note the double-quotes around the string "hello" and the escaped letter "c".
user=> (prn items)
["hello" :a 1 (:b 2) \\c {:d 4} #{5 6 7}]
nil
; pr-str produces a string with escaped punctuation, so that println yields the same result as the original prn call.
user=> (println (pr-str items))
["hello" :a 1 (:b 2) \\c {:d 4} #{5 6 7}]
nil
; Calling println w/o args outputs a newline and nothing else.
user=> (println)
nil
; The newline function does the same.
user=> (newline)
nil
user=>
; be careful when using println in functions like map
; println has nil as its return value
user=> (map #(println %) (range 1 4))
(1 2 3 nil nil nil)