Saya telah berpikir banyak akhir-akhir ini tentang bagaimana cara melakukan pemrograman fungsional dalam C ( bukan C ++). Jelas, C adalah bahasa prosedural dan tidak benar-benar mendukung pemrograman fungsional secara asli.
Apakah ada ekstensi kompiler / bahasa yang menambahkan beberapa konstruksi pemrograman fungsional ke bahasa? GCC menyediakan fungsi bersarang sebagai ekstensi bahasa; fungsi bersarang dapat mengakses variabel dari kerangka tumpukan induk, tetapi ini masih jauh dari penutupan yang matang.
Sebagai contoh, satu hal yang saya pikir bisa sangat berguna dalam C adalah bahwa di mana pun di mana pointer fungsi diharapkan, Anda bisa dapat melewati ekspresi lambda, membuat penutupan yang meluruh menjadi pointer fungsi. C ++ 0x akan memasukkan ekspresi lambda (yang menurut saya mengagumkan); namun, saya mencari alat yang dapat digunakan untuk straight C.
[Sunting] Untuk memperjelas, saya tidak mencoba memecahkan masalah tertentu dalam C yang akan lebih cocok untuk pemrograman fungsional; Saya hanya ingin tahu tentang alat apa yang ada di luar sana jika saya ingin melakukannya.