Elisp 列表包含一个值
Posted
技术标签:
【中文标题】Elisp 列表包含一个值【英文标题】:Elisp List Contains a Value 【发布时间】:2010-11-27 09:29:35 【问题描述】:如何在 elisp 中检查列表是否包含值?所以以下将返回 t:
(contains 3 '(1 2 3))
但是
(contains 5 '(1 2 3))
将返回零。
【问题讨论】:
【参考方案1】:你需要的函数是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
)。
【讨论】:
更多详情请见gnu.org/software/emacs/emacs-lisp-intro/html_node/…【参考方案2】:freiksenet's answer 很好而且惯用语。如果你使用dash.el
,你也可以调用函数-contains?
,它的作用完全一样——检查某个列表是否包含一个元素:
(-contains? '(1 2 3) 2) ; t
【讨论】:
以上是关于Elisp 列表包含一个值的主要内容,如果未能解决你的问题,请参考以下文章