fonction pour enlever les doublons
Salut tout le monde
je suis un peu perdue, je voudrais faire une fonction Haskell qui fait la chose suivante:
je donne une liste des cd à ma fonction , et elle doit me retourner la même liste sans doublons et en additionnant le nombre de cd qui sont pareils (meme nom et meme langue)
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
|
data Lang = Fr | Ang | Ar diriving (Eq, Show)
data Cd = disque String Int Lang diriving (Eq, Ord)
sansDoublons :: [Cd] -> [Cd]
sansDoublons [] = []
sansDoublons (c:cs) =
sansDoublons cs ++ enlever c cs
enlever :: Cd -> [Cd] -> [Cd]
enlever c1 [] = c1
enlever (disque n q u) (disque n1 q1 u1:ys) =
|n==n1 && u==u1 = (disque n1 (q1 + q) u1)
|otherwise = enlever(disque n q u) : ys |
bien évidement cette fonction ne me donne pas exactement ce que je veux!!
Merci d'y jeter un œil et de me dire ce qui ne va pas