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}. |
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). |
Exercice 3. {(dimensions d’une matrice})} Écrire une fonction « dims : ‘a array array -> int * int = |
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. |
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. |
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. |
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. |