common-lisp 高阶函数
示例
CommonLisp包含许多高阶函数,这些函数是传递给参数的函数并调用它们。也许最根本的是funcall和apply:
CL-USER> (list 1 2 3)
(1 2 3)
CL-USER> (funcall #'list 1 2 3)
(1 2 3)
CL-USER> (funcall #'list 1 2 3 4 5)
(1 2 3 4 5)
CL-USER> (apply #'list '(1 2 3))
(1 2 3)
CL-USER> (apply #'list 1 2 '(4 5))
(1 2 3 4 5)
CL-USER> (apply #'+ 1 (list 2 3))
6
CL-USER> (defun my-funcall (function &rest args)
(apply function args))
MY-FUNCALL
CL-USER> (my-funcall #'list 1 2 3)
(1 2 3)还有许多其他高阶函数,例如,将函数多次应用于列表的元素。
CL-USER> (map 'list #'/ '(1 2 3 4)) (1 1/2 1/3 1/4) CL-USER> (map 'vector #'+ '(1 2 3 4 5) #(5 4 3 2 10)) #(6 6 6 6 15) CL-USER> (reduce #'+ '(1 2 3 4 5)) 15 CL-USER> (remove-if #'evenp '(1 2 3 4 5)) (1 3 5)
热门推荐
1 如何训练狗狗不叫
2 训练狗狗不叫
3 训练狗狗随行
4 怎么训练狗狗不叫
7 训练比熊狗狗教程
10 上海狗狗训练
11 怎么训练狗狗上厕所
12 训练狗狗趴下
13 狗狗服从训练
14 训练狗狗拒食
15 训练狗狗笑
16 训练狗狗大便
17 训练狗狗立
18 训练狗狗捡东西