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:
et voila, lors de l'évaluation de cette fonction ou meme de la compilation, j'ai cette erreur :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
donc sur la ligne en italique dans mon code.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2 Characters 845-979: This expression has type unit but is here used with type string
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 ...
Partager