title: Calling Clojure higher-order functions
body: <p>If I define a function that returns a function like this:</p>
  
  <pre><code>(defn add-n
    [n]
    (fn [x] (+ x n)))
  </code></pre>
  
  <p>I can then assign the result to a symbol:</p>
  
  <pre><code>(def add-1 (add-n 1))
  </code></pre>
  
  <p>and call it:</p>
  
  <pre><code>(add-1 41)
  ;=&gt; 42
  </code></pre>
  
  <p>How do I call the result of <code>(add-n 1)</code> without assigning it to a new symbol? The following produces this output:</p>
  
  <pre><code>(println (add-n 1))
  #&lt;user$add_n$fn__33 user$add_n$fn__33@e9ac0f5&gt;
  nil
  </code></pre>
  
  <p>The <code>#&lt;user$add_n$fn__33 user$add_n$fn__33@e9ac0f5&gt;</code> is an internal reference to the generated function.</p>