我需要从Scheme中的列表中删除连续重复项:
(remove '(e f f g h h e e))
应该返回
(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))))))
我以为我走在正确的轨道上,但我看不出我做错了什么。
答案 0 :(得分:0)
第一种情况下括号不正确,在最后一种情况下,您忘记编写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))))))