mapl

La fonction mapl est différente des trois précédentes car elle applique son premier argument non pas à chaque élément de la liste, mais à chaque sous-liste de la liste. La fonction est donc d'abord appliquée à la liste entière, puis au cdr de cette liste, puis au cddr, etc. Comme avec mapc, c'est la liste passée en argument qui est renvoyée. Exemples :

* (let ((total-length 0))
    (mapl #'(lambda (l) (incf total-length (length l)))
          '(a b c d e))
    total-length)

15
* (defparameter *l* (list 1 2 3 4))

*L*
* (mapl #'(lambda (l) (incf (car l)))
        *l*)

(2 3 4 5)
* *l*

(2 3 4 5)
*



Irene DURAND
2011-10-14