Ultimamente ho pensato molto a come fare la programmazione funzionale in C ( non C ++). Ovviamente, C è un linguaggio procedurale e non supporta realmente la programmazione funzionale in modo nativo.
Esistono estensioni di compilatore / linguaggio che aggiungono alcuni costrutti di programmazione funzionale al linguaggio? GCC fornisce funzioni nidificate come estensione del linguaggio; Le funzioni nidificate possono accedere alle variabili dal frame dello stack padre, ma questo è ancora molto lontano dalle chiusure mature.
Ad esempio, una cosa che penso possa essere davvero utile in C è che ovunque ci si aspetta un puntatore a funzione, si potrebbe essere in grado di passare un'espressione lambda, creando una chiusura che decade in un puntatore a funzione. C ++ 0x includerà espressioni lambda (che penso siano fantastiche); tuttavia, sto cercando strumenti applicabili alla scala C.
[Modifica] Per chiarire, non sto cercando di risolvere un particolare problema in C che sarebbe più adatto alla programmazione funzionale; Sono solo curioso di sapere quali strumenti ci sono là fuori se volessi farlo.