Qu'est-ce qui est algébrique dans les effets algébriques ?

Cet article explore la signification du terme « algébrique » dans le contexte de la programmation, en se concentrant sur les effets algébriques. L'auteur soutient que l'aspect algébrique de la programmation réside dans sa capacité de composition, obtenue en contraignant les structures de données et les opérations pour garantir des propriétés spécifiques du système. Les CRDT, par exemple, utilisent la structure algébrique d'un semi-treillis pour résoudre les problèmes de synchronisation des données dans les systèmes distribués. Les effets algébriques étendent ce concept, permettant la composition d'effets avec des propriétés garanties, améliorant ainsi la composabilité et la fiabilité du code. L'auteur illustre comment définir des propriétés algébriques pour assurer des comportements spécifiques à l'aide d'un exemple de stockage clé-valeur et souligne que seuls les langages de types dépendants comme Coq ou Lean peuvent encoder et prouver explicitement ces propriétés algébriques.