40 lines
2.0 KiB
Markdown
40 lines
2.0 KiB
Markdown
# Haskell 4
|
||
|
||
### Exercice 1
|
||
1. La commande crée une liste d'entiers de longueur 4.
|
||
2. La commande crée une liste de chaine de caractères de longueur 4.
|
||
3. La commande crée une erreur car une liste ne peut pas être fait d'objets de type différent (ici chaine de caractère et caractère seul).
|
||
4. La commande crée une liste vide n'ayant encore aucun type (polymorphisme).
|
||
5. La commande crée une erreur pour les même raisons que 3.
|
||
6. La commande crée la liste [11,1]. Haskell évalue bien le contenu de la liste pour l'afficher.
|
||
|
||
### Exercice 2
|
||
1. On ajoute un élément grâce à l'opérateur `:` (lu *cons*).
|
||
2. Les listes en Haskell sont chainées. Donc `cons` est un constructeur du type `List`.
|
||
3. Par exemple `3:[4,5]` crée la liste [3,4,5].
|
||
4. Il faut utiliser l'opérateur `++`.
|
||
5. Il prend une liste à gauche et une liste à droite et renvoie ... la concaténation des deux listes.
|
||
6.
|
||
```
|
||
Prelude> [2,9,4]++[4,7]++[]
|
||
[2,9,4,4,7]
|
||
```
|
||
8. Il faut utiliser l'opérateur `!!`
|
||
9. Il prend une liste à gauche et un entier à droite, l'indexation commencant à 0. On execute la commande suivante : `[4,56,76,8,999,78] !! 3`
|
||
|
||
### Exercice 3
|
||
1. Crée une liste de listes d'entiers.
|
||
2. Assigne à la lettre `l` la valeur donnée.
|
||
3. Affiche la valeur associée à la lettre `l`
|
||
4. Affiche la liste associée à `l` accolée à la liste indiquée. `l` n'est pas modifiée.
|
||
5. Affiche la liste associée à `l` à laquelle on a apposée comme premier élément la liste «singleton -99».
|
||
6. Affiche le troisième élément de la liste associée à la lettre `l`.
|
||
### Exercice 4
|
||
Ces commandes donnent le résultat escompté en utilisant l'ordre lexicographique sur les listes.
|
||
|
||
### Exercice 5
|
||
1. Crée la liste des entiers de 1 à 10 inclus.
|
||
2. Crée la liste arithmétique commencant par 1.0, puis 1.5 et terminant par 3.0.
|
||
3. Crée la liste arithmétique commençant par 3 puis 6 et ne contenant pas de nombre strictement plus grand que 16.
|
||
4. Crée la liste arithmétique commençant par 15 puis 14 et ne contenant pas ne nombre strictement inferieur à 4.
|