Les listes peuvent être récursives, ce qui signifie que vous pouvez avoir des listes dans les listes. Voici un exemple:
Ce code fait en une liste à deux composants, chaque composant lui-même étant également une liste.
La fonction de concaténation c () a un argument optionnel récursif, qui contrôle si l'aplatissement se produit lorsque des listes récursives sont combinées.
Dans le premier cas, nous avons accepté la valeur par défaut de récursive, qui est FALSE, et a obtenu une liste récursive, la composante c de la liste principale elle-même étant une autre liste. Dans le deuxième appel, avec un ensemble récursif à TRUE, nous avons obtenu une liste unique; Seuls les noms semblent récursifs. (Il est étrange que le réglage récursif sur TRUE donne une liste non récurrente.)
Rappelons que notre premier exemple de listes était constitué d'une base de données d'employés.
J'ai mentionné que, puisque chaque employé était représenté comme une liste, la base de données entière serait une liste de listes. C'est un exemple concret de listes récursives.