projprog/HSK4.md

2.0 KiB

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.
Prelude> [2,9,4]++[4,7]++[]
[2,9,4,4,7]
  1. Il faut utiliser l'opérateur !!
  2. 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.