Я напишу другую, более простую функцию, которая демонстрирует циклы. Надеюсь, между этим и тем, что у вас есть, вы попадете туда. : -)
(define (member x lst)
(cond ((null? lst) #f)
((equal? x (car lst)) lst)
(else (member x (cdr lst)))))
Другой пример:
(define (assoc x alist)
(cond ((null? alist) #f)
((equal? x (caar alist)) (car alist))
(else (assoc x (cdr alist)))))