J'ai commencé à jeter un œil sérieux à Lisp ce week-end (j'entends par là que je n'ai appris que Lisp et que je ne suis pas revenu à des projets en C #) et je dois dire que j'adore ça. J'ai essayé d'autres langages fonctionnels (F #, Haskell, Erlang) mais je n'ai pas ressenti le tirage que Lisp m'a donné.
Maintenant que je continue d'apprendre Lisp, j'ai commencé à me demander pourquoi les langages non fonctionnels ne prennent pas en charge les fonctions de première classe. Je sais que des langages tels que C # peuvent faire des choses similaires avec les délégués et dans une certaine mesure, vous pouvez utiliser des pointeurs vers des fonctions en C / C ++, mais y a-t-il une raison pour laquelle cela ne deviendrait jamais une fonctionnalité dans ces langages? Y a-t-il un inconvénient à rendre les fonctions de première classe? Pour moi, c'est extrêmement utile, donc je ne sais pas pourquoi plus de langues (en dehors du paradigme fonctionnel) ne l'implémentent pas.
[Modifier] J'apprécie les réponses jusqu'à présent. Puisqu'on m'a montré que de nombreuses langues prennent désormais en charge des fonctions de première classe, je reformulerai la question: pourquoi faudrait-il autant de temps aux langues pour les implémenter? [/Éditer]