Primitives pour la création de listes

La façon la plus primitive de créer une liste est d'utiliser la fonction cons. Cette fonction prend deux paramètres x et y et renvoie une paire dont le car est x et le cdr est y. Donc, l'expression :

(cons 52 (cons "bonjour" (cons 1.234 nil)))
produit la liste de la figure 8.5 de même que l'expression :
(cons 52 (cons (cons 1.23 (cons 2.34 nil)) (cons 34 nil)))
produit celle de la figure 8.6.

Une méthode plus appropriée est d'utiliser la fonction list. Cette fonction est un peu particulière, car elle admet un nombre arbitraire d'arguments. Pour produire la liste de la figure 8.5, il suffit alors d'évaluer l'expression :

(list 52 "bonjour" 1.234)
et pour celle de la figure 8.6 , l'expression :
(list 52 (list 1.23 2.34) 34)

La fonction make-list permet de créer une liste d'une longeur déterminée et dont les éléments sont initialisés avec un objet Common Lisp:

* (make-list 10)

(NIL NIL NIL NIL NIL NIL NIL NIL NIL NIL)
* (make-list 4 :initial-element 33)

(33 33 33 33)
*

On remarque l'utilisation du mot-clé :initial-element (voir section 6.3.3) pour déterminer l'élément initial de la nouvelle liste.

Irene DURAND
2011-10-14