我目前正在学习 common lisp,偶然发现了一个我无法回答的问题:
(defun find-all (item seq &rest keyword-args &key (test #'eql)
test-not &allow-other-keys)
(if test-not
(apply #'remove item seq
:test-not (complement test-not) keyword-args)
(apply #'remove item seq
:test (complement test) keyword-args)))
该函数用于根据测试函数查找 seq 匹配项中的每个元素。可悲的是,我不明白为什么这里使用了“应用”功能。难道不应该只调用remove而不应用吗?如果我在没有应用的情况下调用删除,则警告说:“该函数在关键字部分有奇数个参数”。
我希望你能帮助我,在此先感谢!