Подсказка: что такое (eq? (list 1) (list 1))
?
eq?
только тестирует объект идентичность .Два отдельно составленных списка не являются одним и тем же списком, даже если их содержимое одинаково.Используйте equal?
для равенства значений:
(equal? '(a b (c)) (list 'a 'b (list 'c)))
; => #t