函数mapcar,maplist

mapcar:接受一个函数以及一个或多个列表,并返回把函数应用至每个列表的元素的结果,知道有的列表没有元素为止,结果为各次执行的返回值的汇总列表:

CL-USER> (mapcar #'(lambda (x) (+ x 10))
         '(1 2 3))
(11 12 13)
CL-USER> (mapcar #'+ '(1 2 3) '(5 6 7 8))
(6 8 10)

 

maplist:同mapcar接受同样的参数,将列表的渐进的下一个cdr传入函数:

CL-USER> (maplist #'(lambda (x) x)
          '(a b c))
((A B C) (B C) (C))
CL-USER> (maplist #'(lambda (a b) (+ (length a) (length b)))
          '(a b c) '(e f g h))
(7 5 3)

posted @ 2012-12-21 15:32  flowjacky  阅读(883)  评论(0编辑  收藏  举报