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)
热门推荐
10 新人红包祝福语简短精辟
11 幼师给毕业祝福语简短
12 生日高考祝福语妹妹简短
13 下飞机祝福语简短英文
14 元宵发客户祝福语简短
15 爸妈金婚文案祝福语简短
16 新郎朋友红包祝福语简短
17 虎年五一祝福语大全简短
18 出阁宴祝福语姐姐简短