Попробуйте, это более общее решение:
(define (member? ele lst)
(cond ((null? lst) #f)
((not (list? lst))
(equal? ele lst))
(else (or (member? ele (car lst))
(member? ele (cdr lst))))))
Обратите внимание, что если вы хотите искать внутри списка (произвольно вложенных) списков, рекурсия немного более сложна: вам нужнорассмотрим случаи, когда список пуст, когда список является не списком, а одним элементом, и вам нужно повторяться в обеих частях списка: car и cdr.
Например, приведенное выше определение будетработа для списков, таких как это:
(member? 'x '((a b) (c (x))))
> #t