Exercice 1 et 2 qcm 2009, type bizarre

Hello, encore moi.

Je sais bien que je poste un peu trop dans le forum, ca doit gener les autres, mais ca m'enerve de rester bloquer sans comprendre.
J'ai eu pour les deux exercices de 2009 le meme probleme, et ce sont les deux premieres fois.

Lorsque je veux utiliser Printf.printf pour une variable , un message d'erreur apparait:
File "/tmp/qcm2009-gps-alex3er.ml", line 16, characters 13-21:
This expression has type string * int but is here used with type
('a, out_channel, unit) format = ('a, out_channel, unit, unit) format4
la ligne 16 est:Printf.printf("%d",a);
et a est defini par:let (a,b)=gps2(n,centres,x,y,[||],1415.) ( gps2 donne deux int)
Je ne comprends pas ce message, puisqu'apres avoir testé ma fonction definie plus haute, je trouve bien un type int pour a et b , et donc Printf.printf("%d",a);
Printf.printf("%d",b) ne devraient pas poser de probleme....

En Caml, on n'appelle pas une fonction par f(argument1, argument2, ...), on écrit direct "f argument1 argument2..." ou "(f argument1 argument2 ...) s'il y a une ambiguité. Si tu écris Printf.printf("%d",a), Caml pense que tu veux appeler printf avec un seul argument, le couple ("%d",a). Il fait donc une erreur de typage.

mince encore une fois j'ai fait le boulet avec une erreur simplissime! j'avais juste à regarder les autres programmes que j'avais fait et j'aurais compris! sorry tout le monde pour ce sujet inutile

Répondre au sujet

Vous devez vous enregistrer ou vous connecter pour poster des messages.