7
Si defino una función que devuelve una función como esta:Calling Clojure funciones de orden superior
(defn add-n
[n]
(fn [x] (+ x n)))
Entonces puede asignar el resultado a un símbolo:
(def add-1 (add-n 1))
y llamarlo:
(add-1 41)
;=> 42
¿Cómo llamo al resultado de (add-n 1)
sin asignarlo a un nuevo símbolo? El siguiente produce esta salida:
(println (add-n 1))
#<user$add_n$fn__33 [email protected]>
nil
El #<user$add_n$fn__33 [email protected]>
es una referencia interna a la función generada.