Ultimamente, tenho pensado muito em como fazer programação funcional em C ( não em C ++). Obviamente, C é uma linguagem processual e realmente não suporta programação funcional nativamente.
Existem extensões de compilador / idioma que adicionam algumas construções de programação funcional ao idioma? O GCC fornece funções aninhadas como uma extensão de idioma; funções aninhadas podem acessar variáveis do quadro de pilha pai, mas isso ainda está muito longe de fechamentos maduros.
Por exemplo, uma coisa que eu acho que poderia ser realmente útil em C é que, em qualquer lugar em que um ponteiro de função seja esperado, você poderá passar uma expressão lambda, criando um fechamento que se deteriora em um ponteiro de função. C ++ 0x vai incluir expressões lambda (o que eu acho incrível); no entanto, estou procurando ferramentas aplicáveis ao C. direto
[Editar] Para esclarecer, não estou tentando resolver um problema específico em C que seria mais adequado à programação funcional; Estou apenas curioso sobre quais ferramentas existem, se eu quisesse fazê-lo.