CAML

Messages : 0

Inscription : 08 août 2017 21:29

Profil de l'utilisateur : Élève de lycée

CAML

Message par MisterReilous » 12 août 2017 19:45

Bonjour,
Je fait du caml en vacances et je me demandais pourquoi la fonction "defile" suivante :


type 'a file_FIFO = { contenu: 'a vect; taille: int ;mutable nombre: int; mutable tete: int};;

let defile file = file.contenu.(file.tete) ; if file.nombre = 0 then failwith "File vide" else if file.tete = file.taille - 1 then file.tete <- 0 else file.tete <- file.tete + 1;;


était du type 'a file_FIFO' -> unit () et ne renvoi pas de valeur associée à "file.contenu.(file.tete)"

Et si possible, si quelqu'un pouvait m'indiquer comment faire les deux à la fois dans la même fonction

Merci d'avance

Messages : 0

Inscription : 27 juil. 2017 13:37

Profil de l'utilisateur : Élève de lycée

Re: CAML

Message par Quentin Fortier » 13 août 2017 12:39

Tu pourrais donc écrire quelque chose du genre:
let defile file =
let res = file.contenu.(file.tete) in
if file.nombre = 0 then failwith "File vide"
else if file.tete = file.taille - 1 then file.tete <- 0 else file.tete <- file.tete + 1;
res;;
Professeur d'informatique en CPGE
http://quentinfortier.fr/

Messages : 0

Inscription : 08 août 2017 21:29

Profil de l'utilisateur : Élève de lycée

Re: CAML

Message par MisterReilous » 17 août 2017 10:11

Merci pour l'éclairement

Répondre