Booléen pris pour un unit
Bonjour,
dans le cadre d'une fonction déterminant par dichotomie la présence ou non d'un élément dans un tableau trié que voici :
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| let rec dicho x tab =
if vect_length tab = 1
&& tab.(0) <> x
then false
else
let i = if (vect_length tab) mod 2 = 1
then (vect_length tab +1) /2 -1
else (vect_length tab) /2 -1
in
if tab.(i) > x
then dicho x ( sub_vect tab 0 (i-1) )
else if tab.(i) < x
then dicho x ( sub_vect tab (i+1) (vect_length tab -1) )
else if tab.(i) = x
then true
;; |
Caml me reproche l'erreur suivante :
Code:
1 2 3 4 5 6
| Entrée interactive:
> ............if tab.(i) = x
> then true
Cette expression est de type unit,
mais est utilisée avec le type bool.
# |
J'avoue que j'ai du mal à voir ce qui cloche, merci de m'éclairer ! :D