Elisp列表包含值

Nat*_*ath 38 emacs elisp

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

(contains 3 '(1 2 3))
Run Code Online (Sandbox Code Playgroud)

(contains 5 '(1 2 3))
Run Code Online (Sandbox Code Playgroud)

将返回零.

fre*_*net 61

你需要的功能是 member

例如:

(member 3 '(1 2 3))
Run Code Online (Sandbox Code Playgroud)

它将返回列表的尾部,其列表是汽车的元素.虽然这不是严格的t,但对于布尔运算,任何非零值都等于true.此外,member用于equal测试相等性,memq用于更严格的相等(使用eq).


Mir*_*lov 7

freiksenet的答案是好的和惯用的.如果你正在使用dash.el,你也可以调用函数-contains?,它完全相同 - 检查一些列表是否包含一个元素:

(-contains? '(1 2 3) 2) ; t
Run Code Online (Sandbox Code Playgroud)