从 Scheme 中的列表中删除重复项
Remove duplicates from a list in Scheme
我需要从 Scheme 的列表中删除 连续 个重复项,例如:
(remove '(e f f g h h e e))
应该return
(e f g h e)
这就是我所拥有的,但我一直收到错误消息:
(define (remove lst)
(cond
((null? lst '())
((null? (cdr lst)) '())
((equal? (car lst)(car(cdr lst)))(remove(cdr lst)))
(cons(car lst)(remove (cdr lst))))))
我以为我在正确的轨道上,但我看不出我做错了什么。
第一种情况括号不正确,最后一种情况你忘了写else
。另外,第二种情况是不正确的;这就是我的意思:
(define (remove lst)
(cond
((null? lst) '())
((null? (cdr lst)) lst)
((equal? (car lst) (car (cdr lst))) (remove (cdr lst)))
(else (cons (car lst) (remove (cdr lst))))))
我需要从 Scheme 的列表中删除 连续 个重复项,例如:
(remove '(e f f g h h e e))
应该return
(e f g h e)
这就是我所拥有的,但我一直收到错误消息:
(define (remove lst)
(cond
((null? lst '())
((null? (cdr lst)) '())
((equal? (car lst)(car(cdr lst)))(remove(cdr lst)))
(cons(car lst)(remove (cdr lst))))))
我以为我在正确的轨道上,但我看不出我做错了什么。
第一种情况括号不正确,最后一种情况你忘了写else
。另外,第二种情况是不正确的;这就是我的意思:
(define (remove lst)
(cond
((null? lst) '())
((null? (cdr lst)) lst)
((equal? (car lst) (car (cdr lst))) (remove (cdr lst)))
(else (cons (car lst) (remove (cdr lst))))))