Я пишу простую функцию-член, которая возвращает значение, связанное с этим членом.Первая строка условия (для проверки, является ли первое значение тем, которое мы ищем) работает нормально, но рекурсивная часть (для проверки последующих частей списка) каждый раз возвращает ошибку.
Вот моя функция:
(defun mem (prop L)
(cond
((eq (caar L) prop) (print cadar L)))
(t (mem (prop (cdr L)))))) // error is on this line!
Итак, если я введу
(mem `i `((i 1) (j 2)))
, он вернёт 1. Однако, если я введу
(mem `j `((i 1) (j 2)))
он возвращает ошибку, что «функция prop не определена».
Как я могу сообщить программе, что prop - это не функция, а просто входной параметр?
Это моя первая программа lisp, поэтому я предполагаю, что ответ невероятныйпросто, но я много чего перепробовал и пока не добился успеха.