Hello ! Comme le titre l'indique j'aimerais que vous m'aidiez pour une fonction recursive je suis en train de galérer à retirer un élément bien particulier dans une liste qui apparaît plusieurs fois j'ai tenté qqch mais c'est faux
let rec remove l a = match l with
|[]->[]
|a :: r -> remove r
|a :: r -> a :: (remove r)
Merci d'avance si quelqu'un veut bien m'aider
Salut, quand tu écris |a :: r -> bla
dans ton pattern-matching, le 'a' et le 'r' sont toujours des nouveaux noms de variables que tu crées. En particulier, le 'a' n'a rien à voir avec celui qui est en argument de ta fonction.
Ici, il faut écrire |x :: r when x = a -> remove r
. Tu donnes le nom 'x' à l'élément en tête de liste, et tu le compares avec le 'a' qui est en argument de ta fonction.
Le "a" de ton constructeur c'est pas le "a" de ton paramètre