projprog/HSK4.md

40 lines
2.0 KiB
Markdown
Raw Permalink Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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.