Scheme - 从嵌套列表中删除重复项

时间:2014-04-15 16:13:29

标签: scheme racket

我在尝试从一组嵌套列表中删除重复元素时遇到问题。我知道如果元素在同一个列表中,如何删除重复项。我只需要朝着正确的方向前进。我再次从头开始

例如,(rmdup'(a(b(a(c)))))应该有输出(a(b(c)))

任何帮助将不胜感激。

1 个答案:

答案 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)))))))