Probleme de type avec OCaml - Langages fonctionnels - Programmation
Marsh Posté le 13-05-2009 à 17:08:14
Pour le warning, ton "toto tata" renvoie une valeur (son type n'est pas unit) que tu ne récupères ni n'utilise, le compilo t'en fais donc part puisque c'est potentiellement une erreur de ta part.
Pour l'erreur, aucune idée, le code que tu as donné est complet? Le message d'erreur aussi? ('fin d'un autre coté je connais pas du tout l'ocaml donc bon...) Et pourquoi utiliser des arguments uncurried à Timer?
Accessoirement, t'es censé renvoyer quoi de timer? parce que si je ne m'abuse et que ton code est complet, là il va retourner le résultat de close_out channel, ce dont je vois mal l'intérêt...
Marsh Posté le 13-05-2009 à 17:21:02
Desole, en effet, j'ai oublie de renvoyer result, c'est a dire que mon timer renvoie le code de la fonction mesuree... (j'ai edite mon precedent message, maintenant c'est bon.)
Ainsi, la variable return dans mon fichier principal contient une valeur... que j'utilise dans une prochaine instruction.
J'ai alors le message d'erreur suivant :
Code :
|
En realite, le probleme ne se concentre que sur ce que j'ai explique + haut, c'est pour ca que je n'ai pas mis tout mon code, qui est assez important...
Merci d'avoir repondu, j'espere avoir ete assez clair.
-Tibap
Marsh Posté le 15-05-2009 à 17:13:02
C'est bon, j'ai trouve ce qui n'allait pas...
En fait, je stockais le resultat de ma fonction passe en argument dans result. Cependant, si j'effectue deux commandes dans ma fonction, j'ai deux valeurs de retour... ce qui n'etait pas souhaitable ici.
Par consequent, il faut juste ignorer la valeur de retour qui n'est pas interressante.
Voila...
-Tibap
Marsh Posté le 13-05-2009 à 16:40:19
Bonjour tout le monde,
Je suis depuis quelques jours sur cette erreur, et j'aimerais avoir de l'aide pour comprendre d'ou vient le probleme de type dans mon programme OCaml.
Voici la structure ainsi qu'un peu de mon code :
J'ai un fichier Monitor, qui contient une fonction timer :
Dont voici le fichier .mli associe :
Ainsi, quand j'appelle cette fonction dans mon code de base de la facon suivante, il n'y a aucun probleme... :
Cependant, si j'ai quelque chose de la forme suivante :
Il me met le message d'erreur suivant :
Et ce warning devient alors problematique car des que j'utilise return, il n'a pas le bon type, et j'ai le droit a un vrai message d'erreur tel que :
Est ce qu'il y aurait un moyen de forcer un type a unit ?
Je debute quelque peu l'OCaml, veuillez me pardonner si c'est une question debile, mais je ne vois vraiment pas comment faire...
Merci pour votre aide...
Tibap.
Message édité par Tibap le 13-05-2009 à 17:13:21