Вы можете просто перебрать свой список со списком результатов, и при каждом совпадении искать искомый элемент:
racket@> (define (occurrences list elem)
(define (iter list result)
(cond ((null? list) result)
((equal? (car list) elem)
(iter (cdr list) (cons elem result)))
(else (iter (cdr list) result))))
(iter list '()))
racket@> (occurrences '(1 2 3) 1)
'(1)
racket@> (occurrences '(a b c d e a f) 'a)
'(a a)
racket@>
Кстати, я написал это в Racket, но он должен работать в любой схемедиалекты / реализации.