Elisp列表包含值

问题描述:

如何在elisp中检查列表是否包含值?所以下面将返回T:Elisp列表包含值

(contains 3 '(1 2 3)) 

(contains 5 '(1 2 3)) 

将返回零。

你需要的功能是member

例如:

(member 3 '(1 2 3)) 

它将返回列表他的车子元素的尾部。虽然这不是严格的tany non-nil value is equivalent to true for a boolean operation。另外,member uses equal要测试是否相等,请使用memq进行更严格的相等(使用eq)。

+1

有关进一步详情,请参阅http://www.gnu.org/software/ emacs的/ emacs的,口齿不清的开场/ html_node /列表 - Processing.html – 2009-09-11 13:14:43

freiksenet's answer是好的和惯用的。如果你正在使用dash.el,你也可以调用函数-contains?,这不正是相同的检查,如果一些列表包含一个元素:

(-contains? '(1 2 3) 2) ; t