Pour écrire des fonctions prenant comme paramètre des fonctions et/ou retourner des fonctions, il faut absolument que les fonctions soient de première classe. Car il faut, que les fonctions supportent toutes les opérations courantes des autres objets : [...]
Pourquoi ? Personne n'a jamais dit qu'il était possible d'implémenter toutes les fonction d'ordre supérieur en C (surtout pas moi, comme tu (?) l'a très justement fait remarqué plus haut, il n'y a pas de fermetures en C.
Le C permet d'implémenter des fonctions, Le C permet de passer ces fonctions implémentés à d'autres fonction.
Voilà un programme haskell qui implémente une fonction d'ordre supérieur :
[^] # Re: lecture oui, écriture non
Posté par Zylabon . En réponse au journal int *(*(*foo[])(int))(float*);. Évalué à 3.
Pourquoi ? Personne n'a jamais dit qu'il était possible d'implémenter toutes les fonction d'ordre supérieur en C (surtout pas moi, comme tu (?) l'a très justement fait remarqué plus haut, il n'y a pas de fermetures en C.
Le C permet d'implémenter des fonctions, Le C permet de passer ces fonctions implémentés à d'autres fonction.
Voilà un programme haskell qui implémente une fonction d'ordre supérieur :
Voilà un programme C, strictement équivalent au programme haskell ci dessus :
Par quel miracle celui ci n'implémenterait pas de fonction d'ordre supérieur ?
J'arrête de discuter là, la preuve est faite.
Please do not feed the trolls