【发布时间】:2010-11-27 09:29:35
【问题描述】:
如何在 elisp 中检查列表是否包含值?所以以下将返回 t:
(contains 3 '(1 2 3))
但是
(contains 5 '(1 2 3))
将返回零。
【问题讨论】:
如何在 elisp 中检查列表是否包含值?所以以下将返回 t:
(contains 3 '(1 2 3))
但是
(contains 5 '(1 2 3))
将返回零。
【问题讨论】:
你需要的函数是member
例如:
(member 3 '(1 2 3))
它将返回 list 的尾部,其 car 是 element。虽然这不是严格意义上的t、any non-nil value is equivalent to true for a boolean operation。此外,member uses equal 用于测试相等性,使用 memq 以获得更严格的相等性(使用 eq)。
freiksenet's answer 很好而且惯用语。如果你使用dash.el,你也可以调用函数-contains?,它的作用完全一样——检查某个列表是否包含一个元素:
(-contains? '(1 2 3) 2) ; t
【讨论】: