Salut tous,

Je rencontre un bug assez étrange dans un de mes codes.
j'ai plusieurs conditions les unes après les autres, de la forme:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
if (mat.(a).(b) = 1)
  then
    begin
      List.map (fun x -> compteur_t := !compteur_t-1) !voisins_d;
      voisins_d := c :: !voisins_d
    end;
Là, ça compile aves un warning:
Warning S: this expression should have type unit.

maintenant, si j'ai juste:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
if (mat.(a).(b) = 1)
  then
    List.map (fun x -> compteur_t := !compteur_t-1) !voisins_d;
là, il y a une erreur:
This expression has type unit list but is here used with type unit

Caml ne m'avait pas habitué à ça... Si je vois à peu près pourquoi il me dit ça, je ne comprends pas pourquoi il ne bugge pas dès le premier cas.

Quelqu'un peut m'expliquer??