Sto solo imparando a conoscere i puntatori a funzione e, mentre leggevo il capitolo K&R sull'argomento, la prima cosa che mi ha colpito è stata: "Ehi, questa è una specie di chiusura". Sapevo che questa ipotesi era fondamentalmente sbagliata in qualche modo e dopo una ricerca online non ho trovato davvero alcuna analisi di questo confronto.
Allora perché i puntatori a funzione in stile C sono fondamentalmente diversi dalle chiusure o dai lambda? Per quanto ne so, ha a che fare con il fatto che il puntatore a funzione punta ancora a una funzione definita (denominata) invece della pratica di definire in modo anonimo la funzione.
Perché passare una funzione a una funzione vista come più potente nel secondo caso, in cui è senza nome, rispetto al primo in cui è solo una normale funzione quotidiana che viene passata?
Per favore dimmi come e perché sbaglio a confrontare i due così da vicino.
Grazie.