函数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)