LISP TD1 2000-2001    







Exercice 1
Ecrire la définition de la fonction long qui prend une liste en argument et retourne sa longueur (version récursive et itérative).
Exemple :
? (long '(a b c d))
=4

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


Vincent Vajnovszki
27 fév 13:03:55 NFT 2000