title: Clojure: Simple factorial causes stack overflow
body: <p>What am I doing wrong? Simple recursion a few thousand calls deep throws a <code>StackOverflowError</code>.</p>
  
  <p>If the limit of Clojure recursions is so low, how can I rely on it?</p>
  
  <pre><code>(defn fact[x]
    (if (&lt;= x 1) 1 (* x  (fact (- x 1))  )))
  
  user=&gt; (fact 2)
  2
  
  user=&gt; (fact 4)
  24
  
  user=&gt; (fact 4000)
  java.lang.StackOverflowError (NO_SOURCE_FILE:0)
  </code></pre>