Первый аргумент filter
- это функция, которая решает, должен ли элемент быть сохранен или отфильтрован.
В вашем случае функция должна возвращать #t
для чисел, не кратных данному значению, и #f
для чисел, кратных этому.
Вот вспомогательная функция для генерации необходимых функций:
(define (not-divisible-by divisor)
(lambda (dividend)
(not (zero? (remainder dividend divisor)))))
Теперь определить нужную функцию просто:
(define (remove-divisible lst value)
(filter (not-divisible-by value) lst))
Конечно, вы можете пропустить вспомогательную функцию, если пожелаете:
(define (remove-divisible lst value)
(filter (lambda (x) (not (zero? (remainder x value)))) lst))
Я бы порекомендовал использовать более читабельный подход.