Il est parfois nécessaire de définir une structure de données personnalisée, comme un ensemble. Dans cet exercice, tu vas définir ton propre ensemble. Son fonctionnement interne n'a pas d'importance, tant qu'il se comporte comme un ensemble d'éléments uniques.
Pour terminer cet exercice, tu dois créer le type de données CustomSet, avec les instances Eq et Show, et implémenter les fonctions suivantes :
deletedifferenceemptyfromListinsertintersectionisDisjointFromisSubsetOfmembernullsizetoListunionUne déclaration de données factice et des signatures de types sont déjà en place, mais c'est à toi de définir les fonctions et de créer un type de données, un newtype ou un synonyme de type qui a du sens.
Si tu veux écrire une implémentation efficace mais que tu ne sais pas trop par où commencer, le meilleur ouvrage d'introduction que je connaisse est « Purely Functional Data Structures » de Chris Okasaki, dont tu peux lire une version ici : https://www.cs.cmu.edu/~rwh/theses/okasaki.pdf
Inscris-toi sur Exercism pour apprendre et maîtriser Haskell avec 107 exercices, et un vrai mentorat humain, le tout gratuitement.