Précédent Suivant Index



La programmation impérative



Références
Création et type
#let compteur = ref (0);;
compteur : int ref = ref 0
Consultation du contenu courant (déréférencement)
#!compteur;;
- : int = 0
Modification du contenu (affectation, effet de bord)
#compteur:=2;;
- : unit = ()
#!compteur;;
- : int = 2
Exemple de fonction manipulant des références :
#let incrémente c = c := !c+1;;
incrémente : int ref -> unit = <fun>
#incrémente compteur; !compteur;;
- : int = 3
Attention, l'affectation d'une référence est différente de la redéfinition par un let d'une variable Caml :
#let x = 1;;
x : int = 1
#let f y = x+y;;
f : int -> int = <fun>
#let x = 2;;
x : int = 2
#f (0);;
- : int = 1
        
#let x = ref 1;;
x : int ref = ref 1
#let f y = !x+y;;
f : int -> int = <fun>
#x := 2;;
- : unit = ()
#f (0);;
- : int = 2

Tableaux


Tableaux à une dimension (vecteurs)


Figure 0.1 : Les principales notions sur les vecteurs

Création et type
#[|1; 2; 3|];;
- : int vect = [|1; 2; 3|]
#make_vect 4 2;;
- : int vect = [|2; 2; 2; 2|]
#let r = make_vect 3 "Bonjour";;
r : string vect = [|"Bonjour"; "Bonjour"; 
"Bonjour"|]
Consultation du contenu courant
#r;;
- : string vect = [|"Bonjour"; "Bonjour"; 
"Bonjour"|]
#r.(0);;
- : string = "Bonjour"
Modification du contenu
#r.(1) <- "tout"; r.(2) <- "le monde!";;
- : unit = ()
#r;;
- : string vect = [|"Bonjour"; "tout"; "le 
monde!"|]
Tableaux à deux dimensions (matrices)

Création, types et dimensions
#[|[|1; 2; 3|]; [|4; 5; 6|]; [|7; 8; 9|]|];;
- : int vect vect = [|[|1; 2; 3|]; [|4; 5; 
6|]; [|7; 8; 9|]|]
#make_matrix 2 1 "Bonjour";;
- : string vect vect = [|[|"Bonjour"|]; 
[|"Bonjour"|]|]
#let M = make_matrix 2 3 0;;
M : int vect vect = [|[|0; 0; 0|]; [|0; 0; 
0|]|]
#(* nombre de lignes *)
 vect_length M;; 
- : int = 2
#(* nombre de colonnes *)
 vect_length M.(0);; 
- : int = 3
Consultation du contenu courant
#M;;
- : int vect vect = [|[|0; 0; 0|]; [|0; 0; 
0|]|]
#M.(0).(2);;
- : int = 0
Modification du contenu
#M.(1).(0) <- 2; M.(1).(2) <- 5;;
- : unit = ()
#M;;
- : int vect vect = [|[|0; 0; 0|]; [|2; 0; 
5|]|]

Séquences
#print_string "Bonjour "; 
 print_string "tout le monde !";;
Bonjour tout le monde !- : unit = ()
#print_string;;
- : string -> unit = <fun>
#1+2;3;;
Entrée interactive:
>1+2;3;;
>^^^
Attention: cette expression est de type 
int,
mais est utilisée avec le type unit.
- : int = 3

Boucles

Exceptions

Précédent Suivant Index