Listes - GRAppA

Transcription

Listes - GRAppA
TD Techniques informatiques
Feuille n°8
Listes
Exercice 1 : à faire à l’écrit, puis à vérifier sur machine
Déterminer le type et la valeur des expressions suivantes :
1.
2.
3.
4.
5.
6.
7.
8.
[]
[ ]:: [ ]
[ ]::[1;2;3]
[ ]::([[1]]@[[2]])
[ ]::[[3;4;5]]
[ ]::([[1];[2]]@[ ])
[1;2]::[ ]::[ ]
(2::(1::[ ]))@[ ]
9.
10.
11.
12.
13.
14.
15.
16.
1:: 2 :: [ ]
[[1;2] ;[ ] ;[3]]
[2;[3]]
1::2::3
[`a`;`b`]@[1;2]
`a`::[ ]@[`b`;`c`]
[`a`]::[`b`;`c`]
[`a`]@[abc]
Exercice 2 : à faire à l’écrit, puis à vérifier sur machine
Donner la notation sans cons des expressions suivantes :
x :: [ ]
[ ] :: [ ]
x :: [y] x :: y :: [ ]
Donner la notation sans @ des expressions suivantes :
[x] @ [y]
[ ] @ L [x]@ L [ ] @ [ ] [x] @ [y] @ [z]
Exercice 3 : à faire à l’écrit, puis à vérifier sur machine
Déterminer le type et la valeur des expressions suivantes :
1.
2.
3.
x::(1::[ ])
(1::2::[ ])::x::[ ]
1::x
4.
5.
[x]::[[1];[2]]
[1;2;x]
Exercice 4 : fonctions simples
Ecrire les fonctions suivantes :
a. LISTE_VIDE qui renvoie true si la liste est vide et false sinon ;
b. TETE qui renvoie la tête de la liste ;
c. QUEUE qui renvoie la queue de la liste.
Exercice 5: fonctions récursives simples
Ecrire les fonctions (versions avec filtrage) :
a.
b.
c.
d.
LONGUEUR, qui calcule la longueur d’une liste
NIEME_ELT, qui renvoie le nième élément d’une liste
APPARTIENT, qui teste si un élément appartient à une liste
INCLUSE qui teste si une liste est incluse dans une autre.
Utilisez la fonction trouvée au point b. pour écrire les fonctions PREMIER_ELT et
DERNIER_ELT qui renvoient respectivement le premier et le dernier élément d'une liste.
Bi-Deug LFTI – 2004/2005
D.Battistelli – D.Sofronie – J.Couto
TD Techniques informatiques
Exercice 6: fonctions récursives qui renvoient des listes
Ecrire les fonctions (versions avec filtrage) :
a.
b.
c.
CONCAT, qui concatène deux listes en une seule
RENVERSE, qui renverse une liste
N_PREM, qui extrait les n premiers éléments d’une liste
Exercice 7 :
Ecrire les fonctions (versions avec filtrage) :
a.
b.
c.
SUPPRIME1, qui supprime une occurrence d’un élément x d’une liste L
SUPPRIME2, qui supprime toutes les occurrences de l’élément x de la liste L
MINLISTE, qui retourne le plus petit élément d’une liste
Exercice 6 :
Définir la fonction FUSION (version avec filtrage) qui fusionne deux listes d’entiers triées
par ordre croissant en une seule liste ordonnée.
Bi-Deug LFTI – 2004/2005
D.Battistelli – D.Sofronie – J.Couto