C'est un point mineur mais je reviens dessus : je ne suis pas d'accord avec le fait de dire que les type classes (classes de type) de Haskell ne sont "pas pour les débutants". Utiliser une type-class déjà définie est facile, définir une type-class ou déclarer une instance pour une type-class est aussi assez facile, il n'y a rien que j'aurais peur d'enseigner en première année. (C'est en particulier plus simple que l'héritage d'implémentation dans un langage objet.)
Les classes sur des types de sorte supérieure (higher-kinded) sont déjà un plus velues, mais c'est un usage avancé pour des concepts plus avancés. Il faudrait commencer par en montrer juste l'usage avec les cas particuliers de Functor et ensuite Monad, et ensuite seulement introduire l'intérêt de définir de nouvelles instances et enfin de nouvelles classes.
Je ne sais pas exactement à quelle difficulté tu pensais quand tu as écrit ça.
[^] # Re: go 2.0
Posté par gasche . En réponse au journal Pourquoi la recherche en langages de programmation ?. Évalué à 4.
C'est un point mineur mais je reviens dessus : je ne suis pas d'accord avec le fait de dire que les type classes (classes de type) de Haskell ne sont "pas pour les débutants". Utiliser une type-class déjà définie est facile, définir une type-class ou déclarer une instance pour une type-class est aussi assez facile, il n'y a rien que j'aurais peur d'enseigner en première année. (C'est en particulier plus simple que l'héritage d'implémentation dans un langage objet.)
Les classes sur des types de sorte supérieure (higher-kinded) sont déjà un plus velues, mais c'est un usage avancé pour des concepts plus avancés. Il faudrait commencer par en montrer juste l'usage avec les cas particuliers de
Functoret ensuiteMonad, et ensuite seulement introduire l'intérêt de définir de nouvelles instances et enfin de nouvelles classes.Je ne sais pas exactement à quelle difficulté tu pensais quand tu as écrit ça.