Bonjour
Je viens enfin de tenter de me mettre a Haskell depuis 2 jours !
Je voudrais adapter un code Prolog :
regroupe([a,a,a, b,c,c], L) ==> L = [[a,2], [b,1], [c,2]]
Voilà mon essai
J'ai tenté plusieurs méthode mais aucune ne fonctionne en particulier celle-ci qui paraissait évidente pour un fan de Prolog
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8 type MyType = [(Char, Int)] regroupe :: [Char] -> MyType regroupe n = case (n) of [k] -> [(k,1)] x:y:t -> (x,m+1):q where ((x == y) , ((x,m):q = regroupe (y:t))) <== cette ligne est refusée à la compilation x:y:t -> (x,1):q where q = regroupe (y:t)
où j'ai le message suivant
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 regroupe n = case (n) of [k] -> [(k,1)] x:x:t -> (x,m+1):q where (x,m):q = regroupe (x:t) x:y:t -> (x,1):q where q = regroupe (y:t)
"conflicting définition for `x'
In a case alternative"
Donc je m'en remets à vous pour faire avancer mes connaissances
Merci
Partager