我有两件事。第一个a-child
是一个列表,其中包含一个数组作为其第一个元素,然后将一些字符串作为其余元素。另一个mapped
是一个包含许多数组的列表。通过检查,很容易看到a-child
位于mapped
,但我找不到能够找到它的功能。
我为下面糟糕的lisp风格道歉 - 我几天前就开始了,所以我还没有完成所有的约定。
(defparameter a-child (list (#2A((1 2 3) (7 4 5) (9 8 6))) "U" "R" "R"))
(defparameter mapped (list (#2A((1 2 3) (7 4 5) (9 8 6))) (#2A((1 2 3) (4 5 6) (7 8 9)))))
(find (car a-child) mapped) ;;returns NIL
(member (car a-child) mapped) ;;returns NIL
(position (car a-child) mapped) ;;returns NIL
(equalp (car a-child) (car mapped)) ;;returns T
我可以用什么函数来查找数组列表中的数组?谢谢。
答案 0 :(得分:8)
如果您将T
传递给他们,那么标记为“返回NIL”的序列函数将返回:test #'equalp
。
Common Lisp中的默认Two-Argument Test为eql
。
这是ANSI CL标准提供的4(!)通用比较功能之间最合理的选择:
另见the difference between eq, eql, equal, and equalp in Common Lisp。