Ocaml. Exercices sur les matrices

Exercice 1.
On souhaite écrire notre propre version de la fonction intégrée “Array.make_matrix”.
La fonction suivante semble créer une matrice de type {n,p}, initialisée avec la valeur {x} :

Former ainsi la matrice nulle {m} de taille {4\times 3}.
Placer la valeur {1} en position {(0,0)} dans la matrice {m}, et afficher le contenu de {m}. Commentaire?

Cliquer ici pour voir (ou cacher) le corrigé
  Pour voir ce contenu, vous devez : 

Exercice 2.
On veut toujours écrire notre propre version de la fonction intégrée “Array.make_matrix”.
Écrire une fonction “make_matr : int -> int -> ‘a -> ‘a array array” qui forme une matrice de type {(n,p)}, initialisée avec une valeur donnée (mais cette fonction ne doit bien sûr plus souffrir du défaut de la fonction de l’exercice précédent).
Cliquer ici pour voir (ou cacher) le corrigé
  Pour voir ce contenu, vous devez : 

Exercice 3. {(dimensions d’une matrice})}
Écrire une fonction “dims : ‘a array array -> int * int = ” calculant le couple {(n,p)} des dimensions d’une matrice (et renvoyant un message d’erreur si la “matrice” est malformée).
Cliquer ici pour voir (ou cacher) le corrigé
  Pour voir ce contenu, vous devez : 

Exercice 4.
Écrire une fonction “add_matr : float array array -> float array array -> float array array” réalisant la somme de deux matrices de flottants (avec un message d’erreur si les deux matrices ne sont pas de même taille). On pourra réutiliser la fonction “dims” de l’exercice précédent.
Cliquer ici pour voir (ou cacher) le corrigé
  Pour voir ce contenu, vous devez : 

Exercice 5.
Écrire une fonction “mult_matr : float array array -> float array array -> float array array” réalisant le produit de deux matrices de flottants (avec un message d’erreur si les tailles des deux matrices ne sont pas compatibles). On pourra réutiliser la fonction “dims” d’un exercice précédent.
Cliquer ici pour voir (ou cacher) le corrigé
  Pour voir ce contenu, vous devez : 

Exercice 6.
Écrire une fonction “trace : float array array -> float” qui transpose une matrice carrée de flottants.
On pourra réutiliser la fonction “dims” d’un exercice précédent.
Cliquer ici pour voir (ou cacher) le corrigé
  Pour voir ce contenu, vous devez : 

Exercice 7.
Écrire une fonction “transpose : ‘a array array -> ‘a array array” qui transpose une matrice.
On pourra réutiliser la fonction “dims” d’un exercice précédent.
Cliquer ici pour voir (ou cacher) le corrigé
  Pour voir ce contenu, vous devez :