【问题标题】:Haskell `elem` in nested list嵌套列表中的 Haskell `elem`
【发布时间】:2022-01-20 22:34:26
【问题描述】:

我想检查嵌套列表中的元素。

我已经尝试了几种方法,但我总是会得到错误的结果或一些错误。

[X] `elem` [[X,X,X],[O,O,O]]

返回 False 但应该是 True

X `elem` [[X,X,X],[O,O,O]]

抛出错误,类型无法匹配。

我错过了什么吗?

【问题讨论】:

    标签: list haskell nested


    【解决方案1】:

    列表的元素是子列表,列表中没有[X]子列表。

    您可以检查子列表的任何元素是否包含X

    <strong>any (elem X)</strong> [[X, X, X], [O, O, O]]

    或使用elem 作为中缀运算符:

    <strong>any (X `elem`)</strong> [[X, X, X], [O, O, O]]

    但它们在语义上是完全相同的。

    这些将检查 任何 个子列表(此处为 [X, X, X][O, O, O]),X 是否是这些列表的一个元素。

    另一个选项,@amalloy described 是将所有子列表连接到一个列表中,然后对这些执行elem 检查,所以:

    elem X (<strong>concat</strong> [[X, X, X], [O, O, O]])

    【讨论】:

    • 或者,elem X (concat xs)
    猜你喜欢
    • 2019-02-27
    • 2012-02-25
    • 2019-08-20
    • 1970-01-01
    • 1970-01-01
    • 2013-04-13
    • 2011-02-06
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多