2017-05-13 2 views
0

Je veux faire une fonction qui ferait exploser une chaîne dans une liste de chaînes en fonction du caractère donné mais pour une raison inconnue l'interpréteur OCaml me dit qu'il y a une erreur de syntaxe sur ma 3ème ligne, caractère 6-7 qui est en fait la tabulation de mon filtre. Je suis plutôt confus. Qu'ai-je fait de mal?Explode dans OCaml

let explode s c = 
    let rec explodeIn s c p l = function 
     | p + 1 -> (String.sub s 0 p)::l 
     | _  -> let idx = String.rindex_from s p c in; explodeIn s c (idx - 1) ((String.sub s (idx + 1) (p - idx))::l) (String.index s c) 
    in 
    explodeIn s c (String.lentgh - 1) [] (String.index s c) 
;; 

Répondre

1

p + 1 n'est pas un modèle valide.

Peut-être que vous vouliez dire i when i = p + 1

Edit:
Il y a aussi quelques erreurs:
non valide ; après in (ligne 4)
Typo String.lentgh =>String.length s (ligne 6)

+0

faire des travaux mieux avec un "quand" merci! Aussi oui j'ai remarqué ces fautes de frappe et les ai corrigées –