difference/relation between str and print-str in Clojure

clojure

Solution

The function `print-str` will return a string similar to what REPL would report if asked to evaluate the argument, e.g. for human consumption. The function `str` invokes the `.toString` of the object. In the case of a string argument, the result is the same as you point out.

This is not in general true for other objects

 ((juxt print-str str) 1N) 
 ;=> ["1N" "1"]

((juxt print-str str) (java.util.Date.))
;=> ["#inst \"2013-07-19T01:47:00.784-00:00\"" "Thu Jul 18 20:47:00 CDT 2013"]

Problem

I was reading Volkmann's Clojure tutorial, in that tutorial it says the function print-str prints the content to a string that is returned. So does this mean that: `(print-str a b c ... )` == `(str a " " b " " c " " ... )` I tried with my REPL and it behaved like I assumed above, but I just want to know if it really is, or I am missing something here...

Original source