我是新的Lisp程序员,需要一些帮助。
鉴于列表,我试图复制在另一个列表中出现一次的元素。
我做了以下事情:
(defun Unique-elements ( l uniqueList )
(or (null l)
(and (not (member (car l) (cdr l)))
(Unique-elements (cdr l)))))
如果提供的列表包含不同的项,则该函数返回True。如何复制uniqueList
中的不同项目并进行展示。
示例:
鉴于列表:
(1 2 3 4 4 5 6 6 7 8 8 8 8)
预期结果:
(1 2 3 5 7)
答案 0 :(得分:4)
这将是原始问题的一个有效功能:
(defun has-only-unique-elements-p (l)
(or (null l)
(and (not (member (car l) (cdr l)))
(has-only-unique-elements-p (cdr l)))))
如果要返回唯一元素,则需要以不同方式编写它。一个天真的算法:
l
为空,则返回NIL