# Listes récursives

Cette leçon propose un paquet d'exercices classiques sur les listes récursives. Il ne s'agit certainement pas de la leçon la plus drôle de la PLM, mais il s'agit certainement de la plus simple des leçons PLM sur la récursivité.

Comme souvent, plusieurs points pourraient être améliorés dans le code de cet univers pour l'améliorer :

- De nouveaux exercices pourraient être proposés, par exemple inspirés de http://webloria.loria.fr/~quinson/Teaching/TOP/02-td-recursivite-enonce.pdf Si vous en connaissez d'autres, nous vous serions reconnaissant de nous en parler dans un rapport d'anomalie.
- Il serait intéressant de vérifier la complexité algorithmique du code proposé par les étudiants, mais cela semble assez difficile à faire. En Python et Java, nous proposons un type de donnée spécifique (les `RecList`) alors nous pourrions compter le nombre de cons réalisés dans chaque exercice, mais il risque d'être compliqué de trouver le test auquel rattacher chaque opération. En Scala, cela s'annonce encore plus difficile car nous utilisons directement des mots-clés du langage. Il serait probablement difficile d'y injecter un mécanisme comptant les opérations. On pourrait vouloir assurer que la pile d'appel ne dépasse pas une profondeur donnée, mais cela semble également difficile à implémenter. Si vous avez des idées, merci de nous en faire part.