[OCAML] Couple de liste
[OCAML] Couple de liste
Bonjour, depuis hier je bute sur une question de mon exercice sur ocaml (je suis débutant en L1) et cela me frustre.
Voici la question :
3°/ Écrire une fonction booléenne publiable dont l’argument x est un élément de type
t_article et qui vérifie que deux relecteurs ont conseillé l’acceptation de l’article.
Avec au préalable défini,
#type t_eval = |ENA |ACC |REV |REF;;
#type t_article = {titre : string; auteur : string ; relecture : (string*t_eval) list}
J'ai pensé à créer une fonction qui compte le nombre de fois ou le type t_eval ACC apparait dans la liste mais je bloque.
Voici mon idée, let rec compte x = match x.relecture with |[] -> 0 |h::t -> if h = (je ne sais pas quoi mettre ici,ACC) then 1 + compte t else compte t;;
let publiable x = if compte x >= 2 then true else false;;
Si vous avez des pistes pour m'aider, je suis preneur Merci.
Voici la question :
3°/ Écrire une fonction booléenne publiable dont l’argument x est un élément de type
t_article et qui vérifie que deux relecteurs ont conseillé l’acceptation de l’article.
Avec au préalable défini,
#type t_eval = |ENA |ACC |REV |REF;;
#type t_article = {titre : string; auteur : string ; relecture : (string*t_eval) list}
J'ai pensé à créer une fonction qui compte le nombre de fois ou le type t_eval ACC apparait dans la liste mais je bloque.
Voici mon idée, let rec compte x = match x.relecture with |[] -> 0 |h::t -> if h = (je ne sais pas quoi mettre ici,ACC) then 1 + compte t else compte t;;
let publiable x = if compte x >= 2 then true else false;;
Si vous avez des pistes pour m'aider, je suis preneur Merci.
Re: [OCAML] Couple de liste
Salut,
Déjà, même si il n'y avait pas ce problème ta fonction ne marcherait pas à cause des types : ton argument x est un article (puisque tu observes son évaluation) mais dans ton filtrage, tu lances compte sur une (string*t_eval) list : ça ne peut pas fonctionner. Je te laisse corriger ça tout seul, les fonctions qui suivent présentent la même erreur.
Et pense, même si indenter c'est chiant sur un forum, à au moins écrire tes fonctions sur plusieurs lignes.
Pour revenir à ton problème : Tu pourrais peut-être modifier ton filtrage, ou utiliser des alias.
Par exemple (solution) :
Déjà, même si il n'y avait pas ce problème ta fonction ne marcherait pas à cause des types : ton argument x est un article (puisque tu observes son évaluation) mais dans ton filtrage, tu lances compte sur une (string*t_eval) list : ça ne peut pas fonctionner. Je te laisse corriger ça tout seul, les fonctions qui suivent présentent la même erreur.
Et pense, même si indenter c'est chiant sur un forum, à au moins écrire tes fonctions sur plusieurs lignes.
Pour revenir à ton problème : Tu pourrais peut-être modifier ton filtrage, ou utiliser des alias.
Par exemple (solution) :
SPOILER:
Re: [OCAML] Couple de liste
Voire même, puisqu'on a un type construit :
SPOILER:
Re: [OCAML] Couple de liste
Effectivement je me suis aperçu de mes erreurs et j’ai compris, je te remercie infiniment tu m’as grandement aidé