Чтобы выполнить упражнение, мне нужно проверить, есть ли элемент в списке или нет. Я знаю, что в lisp есть функция member
, но наш инструктор очень строг и не позволяет нам использовать вещи, которые еще не были охвачены в ходе курса.Проверьте наличие элемента в lisp
Что бы способ проверить, если атом находится в списке, используя только cond
, nil
, car
, not
, cdr
, +
, equal
, defun
?
Edit: После комментария Doseke в; вот попытка:
(defun presence (list item)
(cond
((atom list) nil)
((equal (car list) item) t)
((consp list) (presence (cdr list) item))
(t nil)
)
)
редактировать: Я изменил название, чтобы он соответствовал моему актуальному вопросу
Можно ли использовать рекурсию и проверить, соответствует ли товар автомобилю? – Doseke
@ Doseke: Да, я так думаю –
'atom',' consp' и 't' не являются частью вашего списка« только для использования ». – kmkaplan