Premiers pas en OCaml/Fonctions utilitaires
Maintenant que nous avons vu comment utiliser les fonctions. Voici quelques fonctions qui vous seront probablement utiles.
Les fonctions de conversions
[modifier | modifier le wikicode]Les fonctions de conversions en OCaml ont la syntaxe suivante :
# <type de sortie>_of_<type d'entrée> <valeur d'entrée>;;
- : <type de sortie> = <valeur de sortie>
Le mot anglais of peut être traduit par de en français.
Réel vers entier
[modifier | modifier le wikicode]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éel
[modifier | modifier le wikicode]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 entier
[modifier | modifier le wikicode]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ère
[modifier | modifier le wikicode]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ères
[modifier | modifier le wikicode]# 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éen
[modifier | modifier le wikicode]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 nombre
[modifier | modifier le wikicode]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ères
[modifier | modifier le wikicode]# string_of_int;;
- : int -> string = <fun>
# string_of_float;;
- : float -> string = <fun>
# string_of_float 13.37;;
- : string = "13.37"
Les fonctions d'entrées
[modifier | modifier le wikicode]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ères
[modifier | modifier le wikicode]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 entier
[modifier | modifier le wikicode]# read_int ;;
- : unit -> int = <fun>
# read_int () ;;
1337 (* Appuyez sur entrée *)
- : int = 1337
Lecture d'un réel
[modifier | modifier le wikicode]# read_float ;;
- : unit -> float = <fun>
# read_float () ;;
13.37 (* Appuyez sur entrée *)
- : float = 13.37
Les fonctions d'affichages
[modifier | modifier le wikicode]Les fonctions d'affichage commencent par le mot anglais print qui signifie afficher (verbe) ou affichage (nom) en français.
Affichage d'un caractère
[modifier | modifier le wikicode]# print_char ;;
- : char -> unit = <fun>
# print_char 'A' ;;
A- : unit = ()
Affichage d'un entier
[modifier | modifier le wikicode]# print_int ;;
- : int -> unit = <fun>
# print_int 1337 ;;
1337- : unit = ()
Affichage d'un réel
[modifier | modifier le wikicode]# print_float ;;
- : float -> unit = <fun>
# print_float 13.37 ;;
13.37- : unit = ()
Affichage d'une chaîne de caractères
[modifier | modifier le wikicode]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 ligne
[modifier | modifier le wikicode]Pour sauter une ligne.
# print_newline ;;
- : unit -> unit = <fun>
# print_newline () ;;
(* une ligne vide *)
- : unit = ()
Concaténation de chaîne de caractères
[modifier | modifier le wikicode]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 programme
[modifier | modifier le wikicode]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écapitulatif
[modifier | modifier le wikicode]Voir la fiche de synthèse.
Référence
[modifier | modifier le wikicode]Toutes ces informations sont disponibles sur la documentation officielle :
- [html] • [licence Copyright] • (fr) • lien vers le document • Liste des fonctions