Type unit, type string, match with
Bonjour à tous !
Je dois réaliser un projet en Ocaml mias j'ai une erreur que je n'arrive pas à résoudre. Voici la fonction qui comporte cette erreur:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
| let programme =
print_string "du texte du texte du texte\n";
if !Sys.interactive then () else
begin
Graphics.open_graph "";
Graphics.resize_window ( !xsize / !preview) ( !ysize / !preview);
while true do
let s = Graphics.wait_next_event[Key_pressed] in
if s.keypressed then match s.key with
|'f'-> string_of_expr !expression_en_cours
|'g'-> if (!colour == true) then (genere_preview_en_couleurs !preview (!xsize,!ysize)) else (genere_preview_en_gris !preview (!xsize,!ysize))
| 's' -> if (!colour == true)
then(sauvegarde_postscript_en_couleurs !expression_en_cours (!expression_rouge,!expression_vert,!expression_bleu) (!xsize,!ysize) !fich)
else(sauvegarde_postscript_en_gris !expression_en_cours (!xsize,!ysize) !fich)
|_->()
|'q' -> raise exit
done
end |
et voila, lors de l'évaluation de cette fonction ou meme de la compilation, j'ai cette erreur :
Code:
1 2
| Characters 845-979:
This expression has type unit but is here used with type string |
donc sur la ligne en italique dans mon code.
Pourtant, quand je lance la commande seule dans la boucle interactive, ca fonctionne parfaitement !
string_of_expr est une fonction que j'ai écrite et expression_en_cours est une variable globale en "ref".
Il faut aussi dire que quand j'inverse l'ordre des lignes dans la match with, c'est toujours a partir de la 2eme condition que l'erreur interevient, c'est surement une erreur dans le match with mais je ne vois pas laquelle .......
PS: désolé pour le sujet mais je n'ai vraiment pas su comment décrire ca ...