这段代码来自书:“Land Of Lisp”第一个版本来自书。当我阅读它时,我认为在第二行的“at-loc-p”和第三行的 loc 之后有括号“(”不是必需的。
(defun person-at (loc pers per-locs)
(labels ((at-loc-p (pers)
(eq (cadr (assoc pers per-locs)) loc)))
(remove-if-not #'at-loc-p pers)))
但是当我测试这个时,
(defun person-at (loc pers per-locs)
(labels (at-loc-p (pers)
(eq (cadr (assoc pers per-locs)) loc))
(remove-if-not #'at-loc-p pers)))
结果出来了:
AT-LOC-P 中的必需参数与 lambda 列表 (CCL::FUNCNAME CCL::LAMBDA-LIST &BODY CCL::LABELS-FUNCTION-BODY) 不匹配。
[CCL::SIMPLE-PROGRAM-ERROR 类型的条件]
我不太明白。需要帮忙。谢谢你。