Open Iltotore opened 10 months ago
free monad se dit monade libre en français.
Ok ça me semble interessant, il faudra trouver des gens du canal langages-fonctionnels
pour relire parce que perso j'y connais rien en fonctionnel :)
Voici le projet: https://github.com/Iltotore/pokemon-free-monads
Il manque encore la documentation et un coup de polissage mais le fond y est.
Sujet de l'article
Sujet très inspiré de cet article dont le lien avait été posté sur le canal
#langages-fonctionnels
. Il traite de l'utilisation des free monads pour représenter un système de règles complexes (ici d'un jeu de cartes) qui peuvent être modifiées dynamiquement. Deux intérêts principaux:Je trouve l'idée de l'article originale et prometteuse mais assez survolée. J'aimerais faire un article plus détaillé sur ce même principe en prenant comme exemple un système (très simplifié) de combat pokémon comprenant:
Je n'ai pas encore push le projet sur Github.
Langage
Je compte utiliser Scala car il s'agit du langage que je maîtrise le mieux et je pense que sa syntaxe est plus compréhensible pour la plupart des personnes que celle de Haskell ou OCaml.
Prérequis
L'article n'est pas destiné aux novices mais plutôt à ceux qui ont au moins les bases de la programmation fonctionnelle. Les notions d'ADT/enums fonctionnelles et pattern matching seront considérées comme connues. Je ne pense pas qu'il y ai spécialement besoin de savoir ce qu'est exactement une monade. J'en citerai quelques exemples (
Option
,List
) puis j'expliquerai plutôt en détails ce qu'est une free monad (est-ce que quelqu'un a un équivalent français ?).