Compter occurences en OCAML

Discutez d'informatique ici !
Raven
Membre Relatif
Messages: 110
Enregistré le: 15 Avr 2012, 15:42

Compter occurences en OCAML

par Raven » 04 Déc 2012, 21:59

Bonsoir , pour un exercice on doit compter le nombre d'occurences d'une chaine de caractére par rapport à un caractére et qui retourne ce nombre
j'avais pensé à un compteur du coup..
mais je ne sais pas comment faire pour retourner ce nombre
j'aurais commencé par:

let compter_occurences c s =
let cpt= ref 0 in
if s=c then
cpt := cpt+1
else
cpt c
!cpt ;;
mais je ne sais pas si c'est bon.. ?



Iroh
Membre Relatif
Messages: 374
Enregistré le: 14 Oct 2008, 20:24

par Iroh » 05 Déc 2012, 00:03

Salut, tu peux utiliser fold_left:

Code: Tout sélectionner
let compter_occurence char chaine =
  let increment entier char1 =
    if char1 == char then entier + 1
    else entier in
  fold_left increment 0 chaine
;;


L'implémentation de fold_left: http://www.developpez.net/forums/d355725/autres-langages/langages-fonctionnels/caml/ocaml-explication-list-fold-left-right/#post2170830

Raven
Membre Relatif
Messages: 110
Enregistré le: 15 Avr 2012, 15:42

par Raven » 05 Déc 2012, 20:15

merci mais le probléme est qu'on n'a jamais utiliser ces fonctions ..
on a utilisé que les compteurs comme j'ai dit ,
donc d'aprés ton code ce serait
let compter_occurences c s =
let cpt = ref 0 in
if s.[0] == c then
cpt:= cpt +1
else
!cpt
;;?

 

Retourner vers ϟ Informatique

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 5 invités

Tu pars déja ?



Fais toi aider gratuitement sur Maths-forum !

Créé un compte en 1 minute et pose ta question dans le forum ;-)
Inscription gratuite

Identification

Pas encore inscrit ?

Ou identifiez-vous :

Inscription gratuite