Penso di averlo giù, ma vorrei confermarlo.In che modo l'ambito influenza generalmente l'uso di funzioni annidate?
Con scope dinamico, non importa se si utilizza una funzione nidificata o una funzione separata, come variabili semplicemente dipendono dallo stack di chiamata.
Con solo funzioni pure coinvolte, non importa se si utilizza una funzione nidificata o una funzione separata. Questo è vero indipendentemente dal tipo di ambito.
Con scope lessicale, le funzioni nidificate simulano approssimativamente la chiamata a una funzione con ambito dinamico.
Con scope lessicale, un programma scritto interamente con funzioni pure (che consente forse una singola stampa impura sullo standard output) non richiede alcuna raccolta di dati inutili. Se fa la differenza, sto pensando specificamente a GNU C con l'estensione della funzione annidata per questa domanda.
NOTA: pura funzione, voglio dire la funzione totalmente pura: l'unica cosa che "leggere" sono i parametri, l'unica cosa "scritto" è il funzioni restituiscono.
Grazie
standard C non ha funzioni nidificate, così ho modificato il titolo e tag! –
Grazie, anche se solo per le 4 del mattino mi sono davvero interessato alle lingue specifiche. Per 1-3 mi sto interrogando sullo scope lessicale in generale, cioè sulle regole del pollice che dovrebbero applicarsi a qualsiasi linguaggio che implementa appropriatamente lo scoping lessicale. Quindi va bene se ci sono delle eccezioni. – Sonarpulse
Ah, ok. Immaginavo che stavi parlando di C in particolare, poiché è l'unica lingua che hai menzionato. Sentiti libero di adattare le modifiche al titolo, ecc. Se necessario! –