Comme mapc, mapcar applique son premier argument aux éléments de la liste. La différence est que mapcar renvoie une liste des résultats des applications, c'est-à-dire que le ième élément de la liste renvoyée est la valeur de la fonction appliquée au ième élément de la liste.
Grâce à la valeur de retour, mapcar est souvent utilisée avec des fonctions sans effet de bord. Exemples :
* (mapcar #'1+ '(1 2 3 4))
(2 3 4 5)
* (let ((x (random 23)))
(mapcar #'(lambda (y) (* x y))
'(1 2 3 4)))
(21 42 63 84)
* (mapcar #'car '((a b c) (d e f) (g h i)))
(A D G)
* (mapcar #'oddp '(34 2 55 6 75 94 73 41 11 44 38))
(NIL NIL T NIL T NIL T T T NIL NIL)
*
Voici quelques exemples de McCLIM :
(make-polygon (mapcar (lambda (p) (transform-region transformation p))
(polygon-points rect)))
(make-standard-rectangle-set
(mapcar (lambda (band)
(cons (nth-value 1 (transform-position tr 0 (car band)))
(mapcar (lambda (x)
(nth-value 0 (transform-position tr x 0)))
(cdr band))))
(standard-rectangle-set-bands self)))