Haskell 嵌套列表中的“元素”
Haskell `elem` in nested list
我想检查嵌套列表中的元素。
我已经尝试了几种方法,但我总是会得到错误的结果或一些错误。
[X] `elem` [[X,X,X],[O,O,O]]
returns 错误但应该是正确的
X `elem` [[X,X,X],[O,O,O]]
抛出错误,无法匹配类型。
我是不是漏掉了什么?
列表的元素是子列表,列表中没有[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]]
但它们在语义上完全相同。
这些将检查 any 的子列表(这里是 [X, X, X]
和 [O, O, O]
),X
是否是这些列表的元素.
另一种选择,如 是将所有子列表连接成一个列表,然后对这些子列表执行 elem
检查,因此:
elem X (<strong>concat</strong> [[X, X, X], [O, O, O]])
我想检查嵌套列表中的元素。
我已经尝试了几种方法,但我总是会得到错误的结果或一些错误。
[X] `elem` [[X,X,X],[O,O,O]]
returns 错误但应该是正确的
X `elem` [[X,X,X],[O,O,O]]
抛出错误,无法匹配类型。
我是不是漏掉了什么?
列表的元素是子列表,列表中没有[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]]
但它们在语义上完全相同。
这些将检查 any 的子列表(这里是 [X, X, X]
和 [O, O, O]
),X
是否是这些列表的元素.
另一种选择,如 elem
检查,因此:
elem X (<strong>concat</strong> [[X, X, X], [O, O, O]])