3.7 映射函数 (Mapping Functions)
Common Lisp 提供了数个函数来对一个列表的元素做函数调用。最常使用的是 mapcar
,接受一个函数以及一个或多个列表,并返回把函数应用至每个列表的元素的结果,直到有的列表没有元素为止:
> (mapcar #'(lambda (x) (+ x 10))
'(1 2 3))
(11 12 13)
> (mapcar #'list
'(a b c)
'(1 2 3 4))
((A 1) (B 2) (C 3))
相关的 maplist
接受同样的参数,将列表的渐进的下一个 cdr
传入函数。
> (maplist #'(lambda (x) x)
'(a b c))
((A B C) (B C) (C))
其它的映射函数,包括 mapc
我们在 89 页讨论(译注:5.4 节最后),以及 mapcan
在 202 页(译注:12.4 节最后)讨论。
当前内容版权归 readthedocs 或其关联方所有,如需对内容或内容相关联开源项目进行关注与资助,请访问 readthedocs .