Bonsoir,

je suis actuellement dans l'apprentissage du langage Haskell avec le RWH. J'essaye de créer la fonction qui effectue le contraire de celle-ci :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
fromList (x:xs) = Cons x (fromList xs)
fromList []        =  Nil
À savoir que Cons est un constructeur de ce type :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
data MyList a = Cons a (MyList a)
                    | Nil
Voilà pour l'instant ma fonction (qui ne marche pas) :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
converse (Cons x Nil) = [x]
converse (Cons x y)   = x:(converse y)
Enfin, le message d'erreur de GHC :
Ambiguous occurrence `converse'
It could refer to either `Main.converse', defined at add.hs:25:0
or `Prelude.converse', imported from Prelude
J'espère que mon raisonnement est tout-de-même assez cohérent (enfin, vous me le direz), je mets en tête chaque 'Cons x' jusqu'au Nil.

Merci d'avance