如何在elisp中检查列表是否包含某个值? 以下代码将返回true:
(member 'a '(a b c))
其中,'a是要查找的值,'(a b c)是要搜索的列表。
(contains 3 '(1 2 3))
但是
(contains 5 '(1 2 3))
将返回nil值。
member
例如:(member 3 '(1 2 3))
t
,但对于布尔操作,任何非nil值都相当于true。另外,member
使用equal
来测试相等性,如果想要更严格的相等性(使用eq
),请使用memq
。freiksenet的回答很好,并且用语习惯。 如果您使用dash.el
,您还可以调用函数-contains?
,该函数完全相同-检查某个列表是否包含一个元素:
(-contains? '(1 2 3) 2) ; t