On Fri, May 23, 2003 at 04:55:46PM +0100, Yves Rutschle wrote: > On Fri, May 23, 2003 at 04:20:33PM +0200, Sven Luther wrote: > > Les modules et foncteurs dont parles Georges sont une > > fonctionalite tres avance, qui n'existe a ma connaissance > > dans tres peu d'autre langages et probablement pas en perl > > À vue de nez (je savais pas ce qu'est un foncteur... À > chaque fois que je lis des articles sur la programmation > fonctionnelle, j'apprend plein de nouveaux mots :-) ), un > foncteur est la généralisation d'une "closure" (fermeture?) > à un module complet.
Oui, sauf que, dans ocaml du moins, les applications de foncteurs sont fait de maniere statique, c'est a dire que tu ne peut pas les appliquer au moment de l'execution, uniquement durant la compilation, contrairement aux fonctions classiques. > Perl a ceci, et peut faire cela. J'ai trouvé un article > interessant la dessus: > http://216.239.57.100/search?q=cache:piF4v7_8nCAJ:theory.lcs.mit.edu/~dnj/6898/projects/tibbetts-lesniewski.pdf+perl+functor&hl=en&ie=UTF-8 > > Sinon, ça reste essentiellement de la création automatique > de code, on doit pouvoir faire ça avec des macros C ou des > templates C++ (c'est sans doute une mauvaise idée, je vous > l'accorde d'avance). Oui, disons plutot que les templates C++ sont une carricature de ce que sont les foncteurs. Et on un coup bien moindre a ceux des templates C++. Par contre, les comparer aux macros C, c'est un peu leger, car les macros sont des remplacement purement syntaxique sans tenir compte des types. > > Bien sur, il faut distingue la lisibilite (pour comprendre le code ou > > pour sa documentation) de la facilite de debogage que Georges evoquait > > ici. > > Ouaip, c'est la lisibilité qui disparaitrait rapidement, si > on faisait ça en C :-) Amicalement, Sven Luther