Fonctions diverses sur les listes

Pour obtenir la longueur (le nombre d'éléments) d'une liste, utiliser la fonction list-length. Cette fonction renvoie nil si la liste est circulaire. Attention la fonction length qui donne la longueur d'une séquence fonctionne mais uniquement pour des listes non circulaires. Dans le cas d'une liste circulaire la fonction boucle.

Common Lisp propose l'ensemble des fonctions qui composent au plus quatre fois les fonctions car et cdr: caar, cadr, cdar, cddr, caaar, caadr, cadar, caddr, cdaar, cdadr, cddar, cdddr, caaaar, caaadr, caadar, caaddr, cadaar, cadadr, caddar, cadddr, cdaaar, cdaadr, cdadar, cdaddr, cddaar, cddadr, cdddar, cddddr. Les suites de a et de d décrivent la suite des fonctions car et cdr composées. Par exemple, (caddr x) est équivalent à (car (cdr (cdr x)).

La fonction nthcdr appliquée à un entier n et à une liste a le même effet que n applications de la fonction cdr à la liste. Par exemple, (cdddr x) est équivalent à (nthcdr 3 x) encore équivalent à (cdr (cdr (cdr x))).

Irene DURAND
2011-10-14