我在尝试从一组嵌套列表中删除重复元素时遇到问题。我知道如果元素在同一个列表中,如何删除重复项。我只需要朝着正确的方向前进。我再次从头开始
例如,(rmdup'(a(b(a(c)))))应该有输出(a(b(c)))
任何帮助将不胜感激。
答案 0 :(得分:0)
到目前为止,我有这样的事情:
(define (removeDups L)
(if (null? L) '()
(cons (car L) (removeDups (deepRemove (car L) (cdr L))))))
; RemoveDups的辅助函数
(define (deepRemove n L)
(if (null? L) '()
(if (list? (car L))
(cons (deepRemove n (car L)) (deepRemove n (cdr L)))
(if (equal? n (car L))(deepRemove n (cdr L))
(cons (car L)(deepRemove n (cdr L)))))))