У меня проблема с функцией, которая должна удалить первое вхождение указанного элемента из списка. И я не могу использовать равные. Что я делаю неправильно?
(define f
(lambda (E X)
(list? X)
(check E X)))
(define check
(lambda (E X)
(cond ((eq?(cdr X) '()) 'no_occur)
(#t (cond
((eq?(car X)E) (cdr X))
(#t (cons '()
(cons (car X)
(check E (car X))))))))))
(f 'u '(k u l o))
Я получаю это:
mcdr: нарушение контракта
ожидаемый: mpair?
дано: k