Elisp列表包含值

时间:2009-09-11 04:28:18

标签: emacs elisp

如何在elisp中检查列表是否包含值?所以以下内容将返回t:

(contains 3 '(1 2 3))

(contains 5 '(1 2 3))

将返回零。

2 个答案:

答案 0 :(得分:58)

您需要的功能是member

例如:

(member 3 '(1 2 3))

它将返回 list 的尾部,其车辆是元素。虽然这不是严格tany 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