【问题标题】:Elisp List Contains a ValueElisp 列表包含一个值
【发布时间】:2010-11-27 09:29:35
【问题描述】:

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

(contains 3 '(1 2 3))

但是

(contains 5 '(1 2 3))

将返回零。

【问题讨论】:

    标签: emacs elisp


    【解决方案1】:

    你需要的函数是member

    例如:

    (member 3 '(1 2 3))
    

    它将返回 list 的尾部,其 car 是 element。虽然这不是严格意义上的tany non-nil value is equivalent to true for a boolean operation。此外,member uses equal 用于测试相等性,使用 memq 以获得更严格的相等性(使用 eq)。

    【讨论】:

    【解决方案2】:

    freiksenet's answer 很好而且惯用语。如果你使用dash.el,你也可以调用函数-contains?,它的作用完全一样——检查某个列表是否包含一个元素:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-03-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多