Avez-vous pensé à regarder l'algèbre informatique? Axiom est un système de calcul algébrique dans lequel le système de types est modélisé d'après la théorie des catégories (ou algèbre universelle, selon votre vue). Il existe deux autres dérivés d'Axiom FriCAS et OpenAxiom .
Si vous êtes intéressé par la théorie des catégories, le système de types peut être une chose à examiner.
Dans Axiom, chaque "élément" (par exemple, "1", "5 * x ** 2 + 1") est un élément d'un domaine. Un "domaine" est un objet Axiom déclaré membre d'une catégorie particulière (par exemple, Integer, Polynomial (Integer). Une catégorie Axiom est un objet Axiom déclaré comme membre du symbole distinctif "Category" (par exemple, Ring, Polynomial (TOUR)).
Il existe un réseau d'héritage pour l'héritage multiple parmi les catégories. Par exemple, la catégorie Monad hérite de SetCategory, Monoid de Monad, Group de Monoid, etc., etc.
Il existe également un polymorphisme d'ordre supérieur, un peu similaire aux génériques en Java.
Plusieurs actions au sein d'Axiom peuvent être considérées comme des foncteurs, mais ce serait plutôt compliqué d'entrer ici!
Si vous souhaitez simplement utiliser Axiom sans vous soucier de la théorie des catégories, en tant qu'utilisateur final typique, un système de calcul symbolique est exactement le logiciel idéal pour examiner différentes algèbres.