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 红包祝福语简短10字
18 周六早晨祝福语简短