Premiers pas en OCaml/Fonctions utilitaires

Début de la boite de navigation du chapitre
Fonctions utilitaires
Icône de la faculté
Chapitre no 6
Leçon : Premiers pas en OCaml
Chap. préc. :Fonctions
Chap. suiv. :Structures de données
fin de la boite de navigation du chapitre
Icon falscher Titel.svg
En raison de limitations techniques, la typographie souhaitable du titre, « Premiers pas en OCaml : Fonctions utilitaires
Premiers pas en OCaml/Fonctions utilitaires
 », n'a pu être restituée correctement ci-dessus.

Maintenant que nous avons vu comment utiliser les fonctions. Voici quelques fonctions qui vous seront probablement utiles.

Les fonctions de conversionsModifier

Les fonctions de conversions en OCaml ont la syntaxe suivante :


Le mot anglais of peut être traduit par de en français.

Réel vers entierModifier

Par exemple la fonction int_of_float convertit un réel en un entier.

# int_of_float;;
- : float -> int = <fun>

# int_of_float 13.6;;
- : int = 13

La valeur réelle est tronquée : c'est-à-dire que seule la partie entière est conservée et tout ce que se trouve après la virgule est perdu.

Entier vers réelModifier

L'opération inverse est possible grâce à la fonction float_of_int.

# float_of_int;;
(* Sucre syntaxique *)
# (float);;
- : int -> float = <fun>

# float_of_int 13;;
# (float) 13;;
- : float = 13.

Caractère vers entierModifier

La fonction de conversion d'un caractère vers un entier renvoie la valeur ASCII du caractère.

# int_of_char;;
- : char -> int = <fun>

# int_of_char 'A';;
- : int = 65
# int_of_char '\111';;
- : int = 111

Entier vers caractèreModifier

La fonction de conversion d'un entier vers un caractère prend un entier en paramètre compris entre 0 et 255 inclus.

# char_of_int;;
- : int -> char = <fun>

# char_of_int 97;;
- : char = 'a'
# char_of_int 256;;
Exception: Invalid_argument "char_of_int".

Booléen vers chaîne de caractèresModifier

# string_of_bool;;
- : bool -> string = <fun>

# string_of_bool true;;
- : string = "true"

# string_of_bool false;;
- : string = "false"

Chaîne de caractères vers booléenModifier

Attention la fonction de conversion d'une chaîne de caractères vers un booléen est sensible à la casse.
Les deux seules valeurs acceptées sont en minuscules "true" et "false".

# bool_of_string ;;
- : string -> bool = <fun>

# bool_of_string "true" ;;
- : bool = true

# bool_of_string "false" ;;
- : bool = false

# bool_of_string "TRUE" ;;
Exception: Invalid_argument "bool_of_string".

Chaîne de caractères vers nombreModifier

La chaîne doit correspondre à un entier ou un réel. Attention de bien utiliser un point et pas une virgule.

# int_of_string;;
- : string -> int = <fun>

# float_of_string;;
- : string -> float = <fun>

# float_of_string "13.37";;
- : float = 13.37

# float_of_string "13,37";;
Exception: Failure "float_of_string".

Nombre vers chaîne de caractèresModifier

# string_of_int;;
- : int -> string = <fun>

# string_of_float;;
- : float -> string = <fun>

# string_of_float 13.37;;
- : string = "13.37"

Les fonctions d'entréesModifier

Les fonctions d'entrées commencent par le mot anglais read qui signifie lire (verbe) ou lecture (nom) en français.

Lecture d'une chaîne de caractèresModifier

Il n'y a pas besoin de mettre des guillemets " lors de la saisie.

# read_line ;;
- : unit -> string = <fun>

# read_line () ;;
Bonjour le monde ! (* Appuyez sur entrée *)
- : string = "Bonjour le monde !"

Lecture d'un entierModifier

# read_int ;;
- : unit -> int = <fun>

# read_int () ;;
1337 (* Appuyez sur entrée *)
- : int = 1337

Lecture d'un réelModifier

# read_float ;;
- : unit -> float = <fun>

# read_float () ;;
13.37 (* Appuyez sur entrée *)
- : float = 13.37

Les fonctions d'affichagesModifier

Les fonctions d'affichage commencent par le mot anglais print qui signifie afficher (verbe) ou affichage (nom) en français.

Affichage d'un caractèreModifier

# print_char ;;
- : char -> unit = <fun>

# print_char 'A' ;;
A- : unit = ()

Affichage d'un entierModifier

# print_int ;;
- : int -> unit = <fun>

# print_int 1337 ;;
1337- : unit = ()

Affichage d'un réelModifier

# print_float ;;
- : float -> unit = <fun>

# print_float 13.37 ;;
13.37- : unit = ()

Affichage d'une chaîne de caractèresModifier

Sans saut de ligne.

# print_string ;;
- : string -> unit = <fun>

# print_string "Bonjour le monde !" ;;
Bonjour le monde !- : unit = ()

Avec saut de ligne.

# print_endline ;;
- : string -> unit = <fun>

# print_endline "Bonjour le monde !" ;;
Bonjour le monde !
- : unit = ()

Passer une ligneModifier

Pour sauter une ligne.

# print_newline ;;
- : unit -> unit = <fun>

# print_newline () ;;
   (* une ligne vide *)
- : unit = ()

Concaténation de chaîne de caractèresModifier

Vous pouvez concaténer deux chaînes de caractères grâce à l'opérateur accent circonflexe ^.

# (^);;
- : string -> string -> string = <fun>

# "Bonjour " ^ "le " ^ "monde " ^ "!";;
# (^)((^)((^) "Bonjour " "le ") "monde ") "!";;

- : string = "Bonjour le monde !"

Récupérer les arguments du programmeModifier

Si vous voulez récupérer des arguments que vous avez passé à votre programme. Le premier étant l'emplacement de l'exécutable.

#  Sys.argv.(0);;
- : string = "/usr/bin/ocaml"

(* Il faut évidemment que des paramètres soit passés en entrée. *)
# Sys.argv.(1);;
Exception: Invalid_argument "index out of bounds".

Tableau récapitulatifModifier

Voir la fiche de synthèse.

RéférenceModifier

Toutes ces informations sont disponibles sur la documentation officielle :