Salut tout le monde je suis en train de comprendre comment faire un type de données ensemble dans haskell, mais je ne peux pas comprendre cela, c'est ce que j'ai à ce jour, je suis un peu confushaskell set type de données
data Set a = Node a | List {
list :: [a]
}deriving(Eq,Show,Ord)
insert :: Set Integer -> Set Integer -> Bool
insert (Node itemToInsert) (List list)
|contains (List list) (Node itemToInsert) == False = List(list:(Node itemToInsert))
contains :: Set Integer -> Set Integer -> Bool
contains (List []) (Node numberToFind) = False
contains (List (x:xs)) (Node numberToFind)
|x == (Node numberToFind) = True
|otherwise = contains (List (xs)) (Node numberToFind)
Merci pour votre aide!
Et le problème est ...? –
Je veux une liste de nœuds et je ne peux pas comprendre comment définir le type de données pour le faire. – functionalCode
Vous ne pouvez pas spécifier "ceci est une liste d'un constructeur particulier": utilisez des constructeurs intelligents pour quelque chose comme ça, ou utilisez un autre type de données. Mais pourquoi essayez-vous de définir un nouveau type de données Set, lorsque nous avons Data.Set? Et si vous voulez représenter un graphique (indiqué par "Node"), dites-le ou utilisez une bibliothèque de graphes existante! – ivanm