• # Les Fonctions Génériques

    Posté par . En réponse au journal Le problème de la POO pratiquée par des étudiants. Évalué à 1.

    Pour moi, l'intérêt de la POO, ce sont les Fonctions Génériques.

    En Common Lisp, qui dispose d'un des systèmes objets les plus complets, tout fonctionne par la « surcharge ». On définit une fonction générique, par exemple la somme +, puis on la spécialise en différentes méthodes, par exemple une méthode pour additionner les nombres complexes, une méthode pour additionner les réels, une pour les fractions. L'avantage, c'est qu'on peut à tout moment étendre notre fonction générique. Par exemple, je peux définir moi-même une manière de sommer les vecteurs.

    Je n'en parle pas très bien mais c'est, je trouve, un fonctionnement assez différent de ce qui se fait en Java ou en C++. Les méthodes ne dépendent pas des objets : ainsi une méthode qui prend deux objets différents en argument, comme par exemple la somme d'un complexe et d'un réel, ne dépend ni de la classe Complex, ni de la classe Real, mais juste de la fonction générique +.

    Cette manière de programmer est décrite dans le SICP (sans toutefois utiliser le système d'Objets), et dans le PCL.