LISP TD1 2000-2001 |
Exercice 2
Ecrire la définition de la fonction miroir qui donne l'image miroir
de son
argument (version récursive et itérative).
Exemple :
? (miroir '(a b c))
=(c b a)
Exercice 3
Ecrire la définition de la fonction dernier qui donne le dernier
élément
d'une liste (version récursive et itérative).
Exercice 4
Ecrire la définition de la fonction rotg qui prend une liste en
argument
et retourne une nouvelle liste où le premier élément est
passé en queue.
Exemple :
? (rotg '(a b c d))
= (b c d a)
Exercice 5
Même exercice pour rotgn. Cette fois les premiers n
éléments
passent en queue.
Exemple :
? (rotgn 2 '(a b c d))
= (c d a b)
Exercice 6
Ecrire la définition de la fonction rotd qui prend une liste en
argument
et retourne une nouvelle liste où le dernier élément est
passé en tête
de la liste.
Exercice 7
Même exercice pour rotdn. Cette fois les derniers n
éléments
passent en tête de la liste.
Exemple :
? (rotdn 2 '(a b c d e f g))
= (f g a b c d e)
Exercice 8
Ecrire la définition du prédicat palindrome qui teste si la
liste
passée en argument offre la même séquence d'éléments
lue de gauche
à droite et de droite à gauche.
Exercice 9
Ecrire une fonction qui prend une liste en argument et construit
un palindrome deux fois plus long. On utilise la fonction append ou
cons ?
Exemple :
? (palindromec '(a b c))
= (a b c c b a)
Exercice 10
Ecrire une fonction qui prend une liste en argument et construit la sous-liste
de ses n premiers éléments (on utilisant n fois
car ou n fois cdr).
Exercice 11
Même exercice avec les n derniers éléments.
Exercice 12
Ecrire une fonction qui prend un entier i et une liste en argument
et retourne son i-ème élément.
Exercice 13
Ecrire une fonction qui prend une liste et deux entiers n et m
en argument et retourne la sous-liste de longueur m qui commence sur
la n-ème position.
Exercice 14
Ecrire une fonction qui prend une liste en argument et retourne
sa profondeur.
Exemple :
? (profondeur '(a (b (c))))
= 3