Как я уже отмечал в своем комментарии выше, я не уверен, какой диалект Lisp вы используете, но ваша проблема вписывается в форму функции фильтра (Python имеет хорошую документацию для своего фильтра здесь ).Реализация Scheme, взятая из SICP, имеет вид
(define (filter predicate sequence)
(cond ((null? sequence) nil)
((predicate (car sequence))
(cons (car sequence)
(filter predicate (cdr sequence))))
(else (filter predicate (cdr sequence)))))
, при условии, конечно, что ваш интерпретатор Lisp не имеет встроенной функции фильтра, как я подозреваю.После этого вы можете оставить только номера из вашего списка l
, позвонив по номеру
(filter number? l)