Langage ML
Fermé
hugo
-
20 févr. 2008 à 15:34
KX Messages postés 16741 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 30 mai 2024 - 2 juin 2008 à 16:54
KX Messages postés 16741 Date d'inscription samedi 31 mai 2008 Statut Modérateur Dernière intervention 30 mai 2024 - 2 juin 2008 à 16:54
A voir également:
- Langage ML
- Langage ascii - Guide
- Melody ml - Télécharger - Lecture & Playlists
- Débuter langage batch windows - Guide
- Langage binaire - Guide
- D langage c ✓ - Forum C
2 réponses
KX
Messages postés
16741
Date d'inscription
samedi 31 mai 2008
Statut
Modérateur
Dernière intervention
30 mai 2024
3 016
2 juin 2008 à 16:54
2 juin 2008 à 16:54
Avec Caml Light :
let ajouter c v= (* #ajouter : char -> int vect -> int vect = <fun> *)
let n=int_of_char c in
v.(n)<-v.(n)+1;
v;;
let rec calcul s v= (* #calcul : string -> int vect -> int vect = <fun> *)
if s="" then v
else calcul (sub_string s 1 (string_length s -1)) (ajouter s.[0] v);;
let simplifier v= (* #simplifier : int vect -> (char * int) list = <fun> *)
let l=ref [] in
for k=0 to 255 do
if v.(k)>0 then l:= !l@[char_of_int k,v.(k)];
done;
!l;;
let frequence s= (* #frequence : string -> (char * int) list = <fun> *)
simplifier (calcul s (make_vect 256 0));;
let ajouter c v= (* #ajouter : char -> int vect -> int vect = <fun> *)
let n=int_of_char c in
v.(n)<-v.(n)+1;
v;;
let rec calcul s v= (* #calcul : string -> int vect -> int vect = <fun> *)
if s="" then v
else calcul (sub_string s 1 (string_length s -1)) (ajouter s.[0] v);;
let simplifier v= (* #simplifier : int vect -> (char * int) list = <fun> *)
let l=ref [] in
for k=0 to 255 do
if v.(k)>0 then l:= !l@[char_of_int k,v.(k)];
done;
!l;;
let frequence s= (* #frequence : string -> (char * int) list = <fun> *)
simplifier (calcul s (make_vect 256 0));;