Ali*_*i A 1 lisp list common-lisp duplicate-removal nested-lists
lisp中的函数remove-duplicatelicate仅适用于像(abcd)这样的简单列表.我的问题是我如何从列表中删除重复元素,其中包含嵌套列表.所以举个例子
我有一个嵌套列表的列表如下:((0 1)(0 2)(0 1)(0 3))
我想删除其中一个(0 1)列表,它在上面的列表中重复两次以获得:
((0 1)(0 2)(0 3))
给:test #'equal 到remove-duplicates,它会做你想要的.
正如我们在CLHS中看到的那样:满足双参数测试,:test默认为#'eql未给定时,两个列表(0 1)不相同,eql除非它们是相同的列表(eq).
CL-USER> (remove-duplicates '((0 1) (0 2) (0 1) (0 3)) :test #'equal)
((0 2) (0 1) (0 3))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2531 次 |
| 最近记录: |