如何在elisp中检查列表是否包含值?所以以下内容将返回t:
(contains 3 '(1 2 3))
但
(contains 5 '(1 2 3))
将返回零。
答案 0 :(得分:58)
您需要的功能是member
例如:
(member 3 '(1 2 3))
它将返回 list 的尾部,其车辆是元素。虽然这不是严格t
,any non-nil value is equivalent to true for a boolean operation。另外,member
uses equal
用于测试相等性,使用memq
进行更严格的平等(使用eq
)。
答案 1 :(得分:6)
freiksenet's answer很好,也很惯用。如果您使用的是dash.el
,您还可以调用函数-contains?
,它完全相同 - 检查某些列表是否包含元素:
(-contains? '(1 2 3) 2) ; t