NotANameServer / Not-a-Hub

Blog technique de la communauté NaN
https://hub.notaname.fr
Creative Commons Attribution Share Alike 4.0 International
20 stars 17 forks source link

Un article sur l'utilisation des free monads pour définir les règles de jeux vidéo #88

Open Iltotore opened 10 months ago

Iltotore commented 10 months ago

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 ?).

JeanCASPAR commented 10 months ago

free monad se dit monade libre en français.

Equinox4 commented 10 months ago

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 :)

Iltotore commented 9 months ago

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.