Estoy discutiendo el cierre con un amigo y él piensa (partial + 5)
es un cierre. Pero creo que un cierre es un cierre de función sobre una variable libre, por ejemploes esta función parcial un cierre?
(let [a 10]
(defn func1 [x] (+ x a))
)
continuación func1
es un cierre. Pero en este caso 5
no es una variable libre. Entonces, ¿cuál es la respuesta correcta?
Si bien la respuesta aceptada es correcta en términos de implementación, yo diría que no se debe considerar un cierre, sino más bien "solo" una aplicación parcial. El uso de un cierre es un detalle de implementación interna que no está directamente expuesto a la persona que llama. – user2864740