[Ocaml] Ou est l'erreur ?

Fermé
Ribounet - 9 mai 2013 à 17:25
Bonjour,

Alors comme la charte du site interdit les messages d'aide aux devoirs, je suis obligé de faire dans le politiquement correct...

Voici mon code :

# let rec p10 i =
if i = 0 then 1
else 10* p10(i-1);;
val p10 : int -> int = <fun>


# let valeurchiffre c = int_of_char (c) - int_of_char ('0');;
val valeurchiffre : char -> int = <fun>

#let rec string_string_to_int s i =
if i>String.length (s) then 0
else valeurchiffre (s.[i])*p10(i) + string_string_to_int s (i+1) ;;
val string_string_to_int : string -> int -> int = <fun>

Quand je rentre un exmple comme :
string_string_to_int "123456789" 1;;
Exception: Invalid_argument "index out of bounds".

Ma question: pourquoi ?