ioCode

Implémentation immuable d'une file

Files • Exercices 1A
  1. Écrire une fonction filevide : unit -> 'a file qui renvoie une file vide. Par exemple filevide () renvoie {tete = []; queue = []}.
  2. Écrire une fonction est_vide : 'a file -> bool qui renvoie true si la file est vide et false sinon. Par exemple est_vide filevide () renvoie true.
  3. Écrire une fonction enfiler : 'a file -> 'a -> 'a file qui calcule une nouvelle file contenant l'élément ajouté. Par exemple enfiler filevide 1 renvoie {tete = []; queue = [1]}.
  4. Écrire une fonction inverser : 'a list -> 'a list qui calcule la liste inversée. Par exemple inverser [1; 2; 3] renvoie [3; 2; 1].
  5. Écrire une fonction defiler : 'a file -> 'a * 'a file qui renvoie le premier élément de la file et la file mise à jour. Par exemple defiler {tete = [1]; queue = []} renvoie (1, {tete = []; queue = []}).
  6. Écrire une fonction tete : 'a file -> 'a * 'a file qui renvoie le premier élément de la file sans le supprimer ainsi que la file. Si la tete de la file est vide, le transvasement est effectué et la fonction renvoie la file modifiée. Par exemple tete {tete = []; queue = [1]} renvoie (1, {tete = [1]; queue = []}).
Langage
Console initialisée. En attente de l'interpréteur...