Lisp 可以使用“查找”在另一个列表中查找列表吗?

Lisp 可以使用“查找”在另一个列表中查找列表吗?,lisp,common-lisp,Lisp,Common Lisp,查找基于单个原子的列表元素似乎效果不错: CL-USER> (find 1 (list 5 4 3 2 1)) 1 但是在列表中找到一个列表呢 CL-USER> (find (list 1 2) (list (list 3 4) (list 1 2))) NIL 如何执行此操作?FIND默认情况下使用EQL测试元素。但是,仅当两个对象相同(即,如果它们是EQ)且元素相等时,此列表测试才会返回true 因此: 但您也可以指定不同的测试函数 (find (list 1 2) (lis

查找基于单个原子的列表元素似乎效果不错:

CL-USER> (find 1 (list 5 4 3 2 1))
1
但是在列表中找到一个列表呢

CL-USER> (find (list 1 2) (list (list 3 4) (list 1 2)))
NIL

如何执行此操作?

FIND
默认情况下使用
EQL
测试元素。但是,仅当两个对象相同(即,如果它们是
EQ
)且元素相等时,此列表测试才会返回true

因此:

但您也可以指定不同的测试函数

(find (list 1 2) (list (list 1 2) (list 1 2 3))
      :test #'EQUAL) ==> (1 2)

FIND
默认情况下使用
EQL
测试元素。但是,仅当两个对象相同(即,如果它们是
EQ
)且元素相等时,此列表测试才会返回true

因此:

但您也可以指定不同的测试函数

(find (list 1 2) (list (list 1 2) (list 1 2 3))
      :test #'EQUAL) ==> (1 2)

尝试
(查找(列表12)(列表(列表34)(列表12)))
?@半位更新的问题,感谢可能的重复;特别是对默认
选择的解释:回答
中的test
谓词(查找(列表12)(列表(列表34)(列表12))
?@半位更新问题,感谢可能的重复;特别是对答案中默认
:test
谓词选择的解释