next up previous contents index
Next: mapcar Up: Fonctions d'application Previous: Fonctions d'application   Contents   Index

mapc

La fonction d'application la plus simple est mapc. Elle applique son premier argument à chaque élément de la liste. La valeur de l'appel est la liste passée en argument. Par conséquent, la fonction passée en argument se doit d'avoir des effets de bord (sinon, mapc est la fonction d'identité). Exemples :

* (defparameter *l* (list "abc" "def" "ghi"))

*L*
* *l*

("abc" "def" "ghi")
* (mapc #'nstring-capitalize *l*)

("Abc" "Def" "Ghi")
* *l*

("Abc" "Def" "Ghi")
* (defparameter *l* (list (list 1 2 3) (list 4 5 6) (list 7 8 9)))

*L*
* *l*

((1 2 3) (4 5 6) (7 8 9))
* (mapc #'nbutlast *l*)

((1 2) (4 5) (7 8))
* *l*

((1 2) (4 5) (7 8))
*

Souvent, la fonction passée en paramètre est une fonction anonyme construite avec lambda. Exemple :

* (defparameter *l* (list (list 1 2 3) (list 4 5 6) (list 7 8 9)))

*L*
* (let ((x 5))
    (mapc #'(lambda (elem)
              (setf (car elem) (incf x)))
          *l*))

((6 2 3) (7 5 6) (8 8 9))
* *l*

((6 2 3) (7 5 6) (8 8 9))
*

Voici quelques exemples de McCLIM :

(mapc #'(lambda (child)
          (transform-region (sheet-transformation child)
                            (sheet-region child)))
      (cons child (sheet-occluding-sheets sheet child)))

(mapc #'(lambda (inherited-command-table)
          (apply-with-command-table-inheritance
           fun (find-command-table inherited-command-table)))
      (command-table-inherit-from command-table))


next up previous contents index
Next: mapcar Up: Fonctions d'application Previous: Fonctions d'application   Contents   Index
Robert STRANDH
2001-09-28