Этот фрагмент кода взят из книги: «Земля Лисп». Первая версия из книги. Когда я прочитал его, я подумал, что есть круглые скобки "(" не обязательно перед "at-loc-p" во 2-й строке и ")" сразу после loc в 3-й строке.
(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 не совпадают с лямбда-списком (CCL :: FUNCNAME CCL :: LAMBDA-LIST & BODY CCL :: LABELS-FUNCTION-BODY).
[Условие типа CCL :: SIMPLE-PROGRAM-ERROR]
Я не совсем понимаю. Нужна помощь. спасибо.