title: Clojure String Return Values
body: <p>just a quick question while looking at Clojure....</p>
  
  <p>Given the following REPL Session:</p>
  
  <pre><code>Clojure 1.2.0
  user=&gt; "bar"
  "bar"
  user=&gt; (print "bar")
  barnil
  user=&gt; (defn foo [] ("bar"))
  #'user/foo
  user=&gt; (foo)
  java.lang.ClassCastException: java.lang.String cannot be cast to clojure.lang.IFn (NO_SOURCE_FILE:0)
  user=&gt; (print foo)
  #&lt;user$foo user$foo@65dcc2a3&gt;nil
  user=&gt; (print (foo))
  java.lang.ClassCastException: java.lang.String cannot be cast to clojure.lang.IFn(NO_SOURCE_FILE:0)
  </code></pre>
  
  <p>Why isn't the String "bar" shown by the print function? It seems like the reader tries to resolve the return value of foo (which seems to be a String) as a function?
  How should be foo defined that print will write the string to the commandline?</p>