Une opération de base sur les listes est la création d'une sous-liste à partir d'une liste donnée. Ceci est possible grâce à la fonction subseq. Comme son nom l'indique, elle s'applique non seulement à des listes, mais aussi à des séquences arbitraires (voir section 9.1.3). Elle prend trois paramètres, dont le dernier est facultatif ; le premier paramètre correspond à la liste, le deuxième à la position de début de la sous-liste. Cette position indique le premier élément inclus dans la sous-liste (0 étant le premier élément de la liste). Le troisième paramètre indique le premier élément de la liste non inclus dans la sous-liste. Une valeur de nil pour ce paramètre équivaut à la longueur de la liste et sera la valeur par défaut. La fonction subseq n'est pas desctructive. Exemples :
Il est possible d'utiliser subseq avec setf afin de remplacer destructivement une sous-liste par une autre liste :
Si les deux listes (la sous-liste à remplacer et la liste qui doit la remplacer) n'ont pas la même longueur, la plus courte des deux détermine le résultat :
Irene DURAND