Sto discutendo della chiusura con un amico e lui pensa che (partial + 5)
sia una chiusura. Ma penso che una chiusura è una chiusura funzione in una variabile libera, per esempioquesta funzione parziale è una chiusura?
(let [a 10]
(defn func1 [x] (+ x a))
)
poi func1
è una chiusura. Ma in questo caso 5
non è una variabile libera. Quindi qual è la risposta giusta?
Mentre la risposta accettata è corretta in termini di implementazione, direi che non dovrebbe essere considerata una chiusura, ma piuttosto "solo" un'applicazione parziale. L'uso di una chiusura è un dettaglio di implementazione interna che non è direttamente esposto al chiamante. – user2864740