gpt4 book ai didi

lisp - 可以使用 find 在另一个列表中查找列表吗?

转载 作者:太空宇宙 更新时间:2023-11-03 18:51:58 25 4
gpt4 key购买 nike

基于单个原子查找列表元素似乎工作正常:

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))) ==> NIL

(let ((L1 (list 1 2))
(L2 (list 1 2 3)))
(find L1 (list L1 L2))) ==> (1 2)

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

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

关于lisp - 可以使用 find 在另一个列表中查找列表吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20029442/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com