Últimamente he estado pensando mucho sobre cómo hacer programación funcional en C ( no en C ++). Obviamente, C es un lenguaje de procedimiento y realmente no admite la programación funcional de forma nativa.
¿Hay alguna extensión de compilador / lenguaje que agregue algunas construcciones de programación funcional al lenguaje? GCC proporciona funciones anidadas como una extensión de lenguaje; Las funciones anidadas pueden acceder a las variables desde el marco de la pila principal, pero esto todavía está muy lejos de los cierres maduros.
Por ejemplo, una cosa que creo que podría ser realmente útil en C es que en cualquier lugar donde se espera un puntero de función, podría pasar una expresión lambda, creando un cierre que se desintegra en un puntero de función. C ++ 0x va a incluir expresiones lambda (que creo que es increíble); Sin embargo, estoy buscando herramientas aplicables a la C.
[Editar] Para aclarar, no estoy tratando de resolver un problema particular en C que sería más adecuado para la programación funcional; Simplemente tengo curiosidad acerca de qué herramientas hay si quisiera hacerlo.