小编Kum*_*and的帖子

LISP - 从给定的原子列表中删除重复项

我正在尝试删除给定列表中重复出现的原子。
我的代码如下 -

(defun combine (item List)
 (if (member item List)
   List (cons item List)))

(defuneliminateDuplicates(L)
    (do
      ((M L) M)
      ((null L) M)
      (setq M (combine (car L) M))
      (setq L (cdr L))
))
Run Code Online (Sandbox Code Playgroud)

这段代码工作正常,它从列表中删除重复项 -

[3]> (eliminateduplicates '(a b b c a c g a))
(G C B A)
[4]> (eliminateduplicates '(a a a a a a))
(A)
[5]> (eliminateduplicates '(a b c d))
(D C B A)
Run Code Online (Sandbox Code Playgroud)

在这里,我希望结果的顺序与给定列表中的顺序相同。
即, 的结果(eliminateduplicates '(a b b c a c g …

lisp common-lisp

1
推荐指数
1
解决办法
6001
查看次数

标签 统计

common-lisp ×1

lisp ×1