Bonsoir à tous,

J'ai un tout petit problème de compilation d'une de mes fonctions en CamlLight, erreur du genre "This expression has type int but is used with type unit"...

Cette erreur est causée par ce bout de code:
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
 
exception break_loop;;
 
let partitionner_a3 a g d =
    let pivot = a.(d) and i = ref g and j = ref (d-1) in
        try
            begin
            while true do
                while a.(!i) < pivot do i := !i + 1; done;
                while pivot < a.(!j) do j := !j - 1; if !j = g then raise break_loop done;
                if !i >= !j then raise break_loop;
                echange a !i !j;
            done;
            end
        with break_loop -> ();
        echange a !i d;
        !i;;
Causée par la dernière ligne.

Je pense que cela vient d'un mauvais usage des exceptions (que je n'ai jamais utilisé, mais que j'aimerais beaucoup employer ici).

Toute aide est la bienvenue!

Merci à vous.