[OCaml] Pb de syntaxe :/

Pb de syntaxe :/ [OCaml] - Divers - Programmation

Marsh Posté le 20-04-2003 à 03:35:04    

Hello tout le monde, j'ai un probleme de syntaxe et je vois pas ce qui ne va pas :/
 

Code :
  1. while !i < max do
  2.  let test = give_diff !i in
  3.  if (!isneg=1) then
  4.      begin   (* Ligne 137 *)
  5.         if (test=1) then
  6.         isneg := 0;
  7.         Printf.printf "Ajout\n";
  8.         ignore ((!i)::k_list)
  9.         else (); (* Ligne 142 *)
  10.      end
  11.       
  12.  else if (test=1) then isneg := 0 else isneg :=1;   
  13.  i := !i+resolution;
  14. done;


 
 

File "tests.ml", line 142, characters 9-13:
Syntax error: 'end' expected
File "tests.ml", line 137, characters 6-11:
This 'begin' might be unmatched


 
 
Je commence à péter un cable :D, ca fait 3 heures que je me bats avec mon interpreteur :/
 
Merci à vous !


Message édité par Evadream -jbd- le 20-04-2003 à 03:35:52
Reply

Marsh Posté le 20-04-2003 à 03:35:04   

Reply

Marsh Posté le 20-04-2003 à 10:50:37    

Je comprends vraiment pas quelles règles de syntaxe respecté pour des tests imbriqués, j'ai à chaque fois ce genre de problèmes, alors je remanie mes "algo" exprès pour ca, ca m'embete :/ :D

Reply

Marsh Posté le 22-04-2003 à 00:04:37    

Evadream -jbd- a écrit :

Hello tout le monde, j'ai un probleme de syntaxe et je vois pas ce qui ne va pas :/


gni ?¿? c'est du caml ça ?¿? on dirait pas !
 
Bon, je regarde si j'ai un interprêteur qui marche.

Reply

Marsh Posté le 22-04-2003 à 00:09:17    

Merci pour ton détour par ce topic,
 
Mdr pour la remarque :) Je suis une kiche du Caml, mais je voyais pas comment faire autrement que de l'impératif pour ca :D

Reply

Marsh Posté le 22-04-2003 à 00:12:06    

Citation :


          else (); (* Ligne 142 *)  
          end  


Il est pas en trop le ';' ?

Reply

Marsh Posté le 22-04-2003 à 00:16:29    

J'ai tout chamboulé dans mon programme, je vais voir ca demain, au calme. Mais j'ai passé tellement de temps à "tout" essayer :D
 
Merci, je vous tiens au courant.

Reply

Marsh Posté le 22-04-2003 à 00:18:55    

ignore ((!i)::k_list)
 
c'est super indispensable ce genre d'expression inutile ?¿?
 
isneg := 0 else isneg :=1  
 
Ça sent pas un peu le booléen dégisé ?¿?
 
J'arrive pas à démerder l'affaire.
 
Files-moi le fichier complet stp.

Reply

Marsh Posté le 22-04-2003 à 00:22:51    

J'avais changé pour le booléen, honte à moi.
J'ai plus accés à mon repertoire de travail ce soir, je te donne tout ca demain !
 
Merci à toi !
 
@++


Message édité par Evadream -jbd- le 22-04-2003 à 00:23:27
Reply

Marsh Posté le 22-04-2003 à 00:24:45    

Code :
  1. while !i < max do
  2.     let test = give_diff !i
  3.     in
  4.       if (!isneg = 1) then
  5.              if (test=1) then 
  6.        begin
  7.                  isneg := 0;
  8.                  Printf.printf "Ajout\n";
  9.                  ignore ((!i)::k_list)
  10.        end
  11.              else () (* Ligne 142 *)
  12.     else if (test=1) then isneg := 0 else isneg :=1;       
  13.     i := !i+resolution;
  14. done


 
bon, ça ça s'arrête a "Unbound value i".
 
Mais c'est vraiment en vrac !!!

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed