Se connecter

Savoir & Culture

Cours et Devoirs

Sujet : [OCAML] Retirer les occurence d'un élément d'une liste
1
straizo
Niveau 11
20 novembre 2019 à 17:45:04

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 :hap: 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 :ok:

Choucador
Niveau 10
20 novembre 2019 à 18:19:54

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.

TheLelouch4
Niveau 56
20 novembre 2019 à 18:24:56

Le "a" de ton constructeur c'est pas le "a" de ton paramètre :ok:

1
Sujet : [OCAML] Retirer les occurence d'un élément d'une liste
   Retour haut de page
Consulter la version web de cette page