我是新来的计划和做一些练习。我正在尝试执行以下操作:我要编写的函数采用一个列表参数(不需要输入检查)。然后它删除元素的多次出现并返回新列表。这是一个输入输出示例:让我们调用函数“一次”,
=>(once '(1 2 5 2 3 4 2 4 1 2))
=>Value: (1 2 5 3 4)
这是我的解决方案:
(define once
(lambda (lst)
(if (null? lst)
'()
(if (member (car lst) (cdr lst))
(once (cdr lst))
(cons (car lst) (once (cdr lst)))))))
但是元素的顺序发生了变化,尽管它消除了重复。任何人都可以帮忙吗?谢谢