Calling Clojure higher-order functions

If I define a function that returns a function like this:

(defn add-n
  [n]
  (fn [x] (+ x n)))

I can then assign the result to a symbol:

(def add-1 (add-n 1))

and call it:

(add-1 41)
;=> 42

How do I call the result of (add-n 1) without assigning it to a new symbol? The following produces this output:

(println (add-n 1))
#<user$add_n$fn__33 user$add_n$fn__33@e9ac0f5>
nil

The # is an internal reference to the generated function.

7
задан Ralph 15 May 2011 в 13:49
поделиться