Bonjour à tous,
J'avais ce matin en midterm une fonction à faire. La fonction écrite compilait bien, mais à l'exécution toujours la même erreur:
Voici le code écrit:3:8 Couldn't match type 'Integer' with 'Pile a0'.
Expected type: Pile(Pile a0)
Actual type: Pile Integer
In the first argument of 'sommet', namely 's1'
In the expression: sommet s1
In an equation for 'it':it=sommet s1
Et pour le test dans la console ghci une fois compilé:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 data Pile a= PileVide | Pile {valeurP::a, precedent::(Pile a)} deriving Show --création d'un type pile, qui contient une pile vide ou une valeur et une pile (la valeur précédente dans la structure --fonction sommet, renvoie une PileVide si on passe une PileVide en paramètre -- sinon, renvoie la valeur de la pile en paramètre sommet PileVide = PileVide sommet (Pile valeurP precedent) = valeurP --déclarations de piles s4 = Pile {valeurP=4, precedent=PileVide} s3 = Pile {valeurP=5, precedent=s4} s2 = Pile {valeurP=6, precedent=s3} s1 = Pile {valeurP=7, precedent=s2}
Ca m'a bloqué durant ~1h, pour sans doute un truc tout bête, mais j'ai beau avoir retourné la fonction dans tous les sens, rien ne fonctionnait.
Code : Sélectionner tout - Visualiser dans une fenêtre à part sommet s1
Merci par avance.
Partager