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
CAML
Re: CAML
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;;
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/
http://quentinfortier.fr/